ฉันใช้ JS มานานแล้ว แต่ฉันไม่เคยเจาะลึกลงไปในรูปแบบของ JS บางครั้งใช้เป็นสตริงง่าย ๆ split (ถ่าน) โครงการที่ฉันทำในช่วงเวลานี้ใช้อาร์เรย์จำนวนมาก ฉันคิดว่าฉันเป็นเจ้านายของ JS และฉันไม่รู้ว่าจะเริ่มต้นอย่างไร ฉันโหดร้ายและฉันจะเรียนรู้! ฮิฮิ หลังจากเรียนรู้ฉันรู้ว่าฟังก์ชั่นของอาร์เรย์ JS นั้นทรงพลังมากแข็งแกร่งกว่า VB และ C# มาดูกันอย่างช้าๆ
1. การสร้างอาร์เรย์
var arrayobj = new Array (); // สร้างอาร์เรย์ var arrayobj = อาร์เรย์ใหม่ ([ขนาด]); // สร้างอาร์เรย์และระบุความยาวโปรดทราบว่าไม่ใช่ขีด จำกัด บนมันคือความยาว var arrayobj = อาร์เรย์ใหม่ ([องค์ประกอบ 0 [, องค์ประกอบ 1 [, ... [, elementn]]]]); // สร้างอาร์เรย์และกำหนดค่า
ควรสังเกตว่าแม้ว่าวิธีที่สองจะสร้างอาร์เรย์ที่ระบุความยาวในความเป็นจริงอาร์เรย์นั้นยาวขึ้นในทุกกรณีนั่นคือแม้ว่าจะมีการระบุความยาวองค์ประกอบยังคงสามารถเก็บไว้นอกความยาวที่ระบุได้ หมายเหตุ: ความยาวจะเปลี่ยนไปตามนั้น
2. การเข้าถึงองค์ประกอบของอาร์เรย์
var testGetArvalue = arrayobj [1]; // รับค่าองค์ประกอบของอาร์เรย์
arrayobj [1] = "นี่คือค่าใหม่"; // กำหนดค่าใหม่ให้กับองค์ประกอบอาร์เรย์
3. การเพิ่มองค์ประกอบอาร์เรย์
รหัส
Arrayobj push ([item1 [item2 [. .. [itemn]]]); // เพิ่มองค์ประกอบใหม่หนึ่งอย่างหรือมากกว่าหนึ่งรายการในตอนท้ายของอาร์เรย์และส่งคืนความยาวใหม่ของอาร์เรย์อาร์เรย์ arrayobj.unshift ([รายการ 1 [รายการ 2 [.. arrayobj.splice (insertpos, 0, [item1 [, item2 [,. ... [, itemn]]]]); // แทรกองค์ประกอบใหม่อย่างน้อยหนึ่งรายการลงในตำแหน่งที่ระบุของอาร์เรย์องค์ประกอบที่ตำแหน่งแทรกโดยอัตโนมัติ
4. การลบองค์ประกอบอาร์เรย์
arrayobj.pop (); // ลบองค์ประกอบสุดท้ายและส่งคืนค่าองค์ประกอบ arrayobj.shift (); // ลบองค์ประกอบสุดท้ายและส่งคืนค่าองค์ประกอบองค์ประกอบในอาร์เรย์จะเลื่อนไปข้างหน้าโดยอัตโนมัติ arrayobj.splice (deletePos, deleteCount); // ลบองค์ประกอบของจำนวน deleteCount ที่ระบุเริ่มต้นจากตำแหน่ง deletePos ที่ระบุและส่งคืนองค์ประกอบที่ถูกลบในแบบฟอร์มอาร์เรย์
5. การสกัดกั้นและการรวมของอาร์เรย์
arrayobj.slice (เริ่ม, [end]); // ส่งคืนชิ้นส่วนของอาร์เรย์ในรูปแบบของอาร์เรย์โปรดทราบว่าองค์ประกอบที่สอดคล้องกับจุดสิ้นสุดจะไม่รวมอยู่ หากมีการละเว้นสิ้นสุดองค์ประกอบทั้งหมดหลังจากเริ่มต้นจะถูกคัดลอก
arrayobj.concat ([item1 [, item2 [,. ... [, itemn]]]]); // เชื่อมต่อหลายอาร์เรย์ (สามารถเป็นสตริงหรือส่วนผสมของอาร์เรย์และสตริง) ลงในอาร์เรย์และส่งคืนอาร์เรย์ใหม่ที่เชื่อมต่อ
6. สำเนาอาร์เรย์
arrayobj.slice (0); // ส่งคืนอาร์เรย์สำเนาของอาร์เรย์โปรดทราบว่ามันเป็นอาร์เรย์ใหม่ไม่ชี้ไปที่
arrayobj.concat (); // ส่งคืนอาร์เรย์สำเนาของอาร์เรย์โปรดทราบว่ามันเป็นอาร์เรย์ใหม่ไม่ชี้ไปที่
7. จัดเรียงองค์ประกอบอาร์เรย์
arrayobj.Reverse (); // ย้อนกลับองค์ประกอบ (อันแรกได้รับการจัดอันดับสุดท้ายอันสุดท้ายจะได้รับการจัดอันดับก่อน) และส่งคืนที่อยู่อาร์เรย์
arrayobj.sort (); // เรียงลำดับองค์ประกอบอาร์เรย์และที่อยู่อาร์เรย์ส่งคืน
8. การรวบรวมองค์ประกอบอาร์เรย์
arrayobj.join (ตัวคั่น); // ส่งคืนสตริงซึ่งเข้าร่วมแต่ละค่าองค์ประกอบของอาร์เรย์เข้าด้วยกันคั่นด้วยตัวคั่น
tolocalestring, toString, valueof: มันถือได้ว่าเป็นการใช้งานพิเศษของการเข้าร่วมไม่ได้ใช้บ่อย
2. คุณสมบัติสามประการของอาร์เรย์วัตถุ
1. แอตทริบิวต์ความยาว
แอตทริบิวต์ความยาวแสดงถึงความยาวของอาร์เรย์นั่นคือจำนวนองค์ประกอบในนั้น เนื่องจากดัชนีของอาร์เรย์เริ่มต้นจาก 0 เสมอขีด จำกัด บนและล่างของอาร์เรย์คือ: 0 และความยาว -1 ตามลำดับ ซึ่งแตกต่างจากภาษาอื่น ๆ ส่วนใหญ่คุณสมบัติความยาวของอาร์เรย์ JavaScript นั้นไม่แน่นอนซึ่งต้องการความสนใจเป็นพิเศษ เมื่อแอตทริบิวต์ความยาวถูกตั้งค่าให้ใหญ่ขึ้นสถานะของอาร์เรย์ทั้งหมดจะไม่เปลี่ยนแปลงจริงเพียงแค่แอตทริบิวต์ความยาวจะใหญ่ขึ้น เมื่อแอตทริบิวต์ความยาวถูกตั้งค่าให้เล็กกว่าต้นฉบับค่าทั้งหมดขององค์ประกอบที่มีดัชนีมากกว่าหรือเท่ากับความยาวในอาร์เรย์ดั้งเดิมจะหายไป นี่คือตัวอย่างที่แสดงให้เห็นถึงการเปลี่ยนแอตทริบิวต์ความยาว:
รหัส
var arr = [12,23,5,3,25,98,76,54,56,76]; // กำหนดการแจ้งเตือนอาร์เรย์ (arr.length); // แสดงความยาวของอาร์เรย์ 10 arr.length = 12; // เพิ่มความยาวของการแจ้งเตือนอาร์เรย์ (arr.length); // แสดงความยาวของอาร์เรย์ได้กลายเป็น 12 arr (arr [8]); // แสดงค่าขององค์ประกอบที่ 9, 56 arr.length = 5; // ลดความยาวของอาร์เรย์เป็น 5 และองค์ประกอบที่มีดัชนีเท่ากับหรือเกิน 5 จะถูกยกเลิกการแจ้งเตือน (arr [8]); // แสดงองค์ประกอบที่ 9 ได้กลายเป็น "undefined" arr.length = 10; // คืนค่าความยาวของอาร์เรย์เป็น 10 arr (arr [8]); // แม้ว่าความยาวจะถูกกู้คืนเป็น 10 แต่องค์ประกอบที่ 9 ไม่สามารถหดกลับได้แสดงว่า "ไม่ได้กำหนด"
จากรหัสข้างต้นเราสามารถเห็นคุณสมบัติของแอตทริบิวต์ความยาวได้อย่างชัดเจน แต่วัตถุความยาวไม่เพียง แต่สามารถตั้งค่าได้อย่างชัดเจนเท่านั้น แต่ยังสามารถแก้ไขได้โดยปริยาย ตัวแปรที่ไม่ได้ประกาศสามารถใช้ใน JavaScript ในทำนองเดียวกันองค์ประกอบอาร์เรย์ที่ไม่ได้กำหนด (หมายถึงองค์ประกอบที่มีดัชนีเกินหรือเท่ากับความยาว) ในเวลานี้ค่าของแอตทริบิวต์ความยาวจะถูกตั้งค่าเป็นค่าของดัชนีองค์ประกอบที่ใช้บวก 1 ตัวอย่างเช่นรหัสต่อไปนี้:
var arr = [12,23,5,3,25,98,76,54,56,76]; การแจ้งเตือน (arr.length); arr [15] = 34; Alert (arr.length);
รหัสยังกำหนดอาร์เรย์ที่มี 10 หมายเลข ผ่านคำสั่งการแจ้งเตือนจะเห็นได้ว่าความยาวของมันคือ 10 จากนั้นองค์ประกอบที่มีดัชนี 15 ถูกใช้และค่าคือ 15 นั่นคือ arr [15] = 34 ในเวลานี้ความยาวของอาร์เรย์จะถูกส่งออกโดยใช้คำสั่งการแจ้งเตือนและผลลัพธ์คือ 16 อย่างไรก็ตามนี่เป็นคุณสมบัติที่น่าแปลกใจสำหรับนักพัฒนาที่คุ้นเคยกับการเขียนโปรแกรมที่พิมพ์อย่างรุนแรง ในความเป็นจริงอาร์เรย์ที่สร้างขึ้นโดยใช้รูปแบบของอาร์เรย์ใหม่ () มีความยาวเริ่มต้นที่ 0 มันคือการทำงานขององค์ประกอบที่ไม่ได้กำหนดซึ่งเปลี่ยนความยาวของอาร์เรย์
จากการแนะนำข้างต้นเราจะเห็นว่าแอตทริบิวต์ความยาวนั้นวิเศษมากจนสามารถเพิ่มหรือลดความสามารถของอาร์เรย์ได้อย่างง่ายดาย ดังนั้นความเข้าใจในเชิงลึกของแอตทริบิวต์ความยาวจะช่วยให้สามารถนำไปใช้ได้อย่างยืดหยุ่นในระหว่างกระบวนการพัฒนา
2. คุณลักษณะต้นแบบ
ส่งคืนการอ้างอิงไปยังต้นแบบประเภทวัตถุ แอตทริบิวต์ต้นแบบถูกแชร์โดยวัตถุ
ObjectName.prototype
พารามิเตอร์ ObjectName คือชื่อของวัตถุวัตถุ
ภาพประกอบ:
ใช้แอตทริบิวต์ต้นแบบเพื่อให้ชุดฟังก์ชั่นพื้นฐานของคลาสของวัตถุ อินสแตนซ์ใหม่ของวัตถุ "สืบทอด" การดำเนินการที่ให้ต้นแบบวัตถุ
สำหรับวัตถุอาร์เรย์ให้ใช้ตัวอย่างต่อไปนี้เพื่อแสดงวัตถุประสงค์ของแอตทริบิวต์ต้นแบบ
เพิ่มวิธีการลงในวัตถุอาร์เรย์เพื่อส่งคืนค่าองค์ประกอบสูงสุดในอาร์เรย์ ในการทำสิ่งนี้ให้สำเร็จประกาศฟังก์ชั่นเพิ่มลงใน Array.prototype และใช้งาน
รหัส
ฟังก์ชั่น array_max () {var i, max = this [0]; สำหรับ (i = 1; i <this.length; i ++) {ถ้า (สูงสุด <this [i]) max = this [i];} return max;} array.prototype.max = array_max;หลังจากดำเนินการรหัสนี้แล้ว Y จะบันทึกค่าสูงสุดในอาร์เรย์ X หรือ 6
3. แอตทริบิวต์ตัวสร้าง
ฟังก์ชั่นที่แสดงถึงการสร้างวัตถุ
Object.constructor // Object เป็นชื่อของวัตถุหรือฟังก์ชั่น
คำอธิบาย: คุณสมบัติตัวสร้างเป็นสมาชิกของวัตถุทั้งหมดที่มีต้นแบบ พวกเขารวมวัตถุ JScript-inherited ทั้งหมดยกเว้นวัตถุทั่วโลกและคณิตศาสตร์ คุณสมบัติตัวสร้างมีการอ้างอิงถึงฟังก์ชั่นที่สร้างอินสแตนซ์วัตถุเฉพาะ
ตัวอย่างเช่น:
x = สตริงใหม่ ("สวัสดี");
if (x.constructor == สตริง) // กระบวนการ (เงื่อนไขเป็นจริง)
หรือ
ฟังก์ชั่น myfunc {
// ฟังก์ชั่นร่างกาย
-
y = ใหม่ myfunc;
ถ้า (y.constructor == myfunc) // กระบวนการ (เงื่อนไขเป็นจริง)
สำหรับอาร์เรย์:
y = new Array ();