อย่างที่เราทราบกันดี JavaScript เป็นภาษาการเขียนโปรแกรมที่ได้รับความนิยมมาก นักพัฒนาสามารถใช้มันเพื่อพัฒนาโปรแกรมเว็บที่น่าตื่นตาเท่านั้น แต่ยังพัฒนาแอพพลิเคชั่นมือถือ (เช่น PhoneGap หรือ AppCelerator) นอกจากนี้ยังมีการใช้งานเซิร์ฟเวอร์บางอย่างเช่น NodeJs, Wakanda และการใช้งานอื่น ๆ นอกจากนี้นักพัฒนาหลายคนเลือก JavaScript เป็นภาษาเบื้องต้นและใช้มันเพื่อทำสิ่งเล็ก ๆ น้อย ๆ เช่นป๊อปอัป
ในบทความนี้ผู้เขียนจะแบ่งปันเคล็ดลับเล็ก ๆ แนวทางปฏิบัติที่ดีที่สุดและเนื้อหาอื่น ๆ ที่ใช้งานได้จริงของการพัฒนา JavaScript ไม่ว่าคุณจะเป็นนักพัฒนาส่วนหน้าหรือนักพัฒนาเซิร์ฟเวอร์คุณควรดูเคล็ดลับเล็ก ๆ เหล่านี้พวกเขาจะเป็นประโยชน์ต่อคุณอย่างแน่นอน
ตัวอย่างรหัสที่ให้ไว้ในบทความได้รับการทดสอบใน Chrome 30 เวอร์ชันล่าสุดซึ่งใช้เครื่องยนต์ V8 JavaScript (V8 3.20.17.15)
1. เมื่อกำหนดค่าให้กับตัวแปรเป็นครั้งแรกอย่าลืมคำหลัก VAR
กำหนดค่าให้กับตัวแปรที่ไม่ได้ประกาศซึ่งจะถูกสร้างขึ้นโดยอัตโนมัติเป็นตัวแปรส่วนกลาง ในการพัฒนา JS ควรหลีกเลี่ยงตัวแปรทั่วโลก
2. ใช้ === แทนที่ ==
และไม่เคยใช้ = หรือ! -
การคัดลอกรหัสมีดังนี้:
[10] === 10 // เป็นเท็จ
[10] == 10 // เป็นจริง
'10' == 10 // เป็นจริง
'10' === 10 // เป็นเท็จ
[] == 0 // เป็นจริง
[] === 0 // เป็นเท็จ
'' == false // เป็นจริง แต่จริง == "a" เป็นเท็จ
'' === false // เป็นเท็จ
3. ใช้เครื่องหมายอัฒภาคเป็นเทอร์มิเนเตอร์สาย
มันเป็นนิสัยที่ดีในการใช้เครื่องหมายอัฒภาคที่มีสายสิ้นสุดลงและแม้ว่าผู้พัฒนาจะลืมที่จะเพิ่มเครื่องหมายอัฒภาคคอมไพเลอร์จะไม่มีคำแนะนำใด ๆ เพราะในกรณีส่วนใหญ่ตัวแยกวิเคราะห์ JavaScript จะเพิ่มโดยอัตโนมัติ
4. สร้างตัวสร้าง
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่นบุคคล (ชื่อ FirstName, LastName) {
this.firstName = FirstName;
this.lastName = LastName;
-
var saad = คนใหม่ ("saad", "mousliki");
5. ระวังใช้ typeof, instanceof และ constructor
การคัดลอกรหัสมีดังนี้:
var arr = ["a", "b", "c"];
typeof arr; // กลับ "วัตถุ"
arr อินสแตนซ์ของอาร์เรย์ // true
arr.constructor (); -
6. สร้างฟังก์ชั่นการโทรด้วยตนเอง
สิ่งนี้มักถูกเรียกว่าฟังก์ชันที่ไม่ระบุชื่อโทรด้วยตนเองหรือนิพจน์ฟังก์ชั่นการโทรทันที (LLFE) เมื่อมีการสร้างฟังก์ชั่นมันจะถูกดำเนินการโดยอัตโนมัติเช่นต่อไปนี้:
การคัดลอกรหัสมีดังนี้:
(การทำงาน(){
// รหัสส่วนตัวบางตัวที่จะดำเนินการโดยอัตโนมัติ
-
(ฟังก์ชั่น (a, b) {
var result = a+b;
ผลการกลับมา;
}) (10,20)
7. สร้างรายการสุ่มสำหรับอาร์เรย์
การคัดลอกรหัสมีดังนี้:
รายการ var = [12, 548, 'a', 2, 5478, 'foo', 8852 ,, 'doe', 2145, 119];
var randomItem = รายการ [math.floor (math.random () * items.length)];
8. รับหมายเลขสุ่มในช่วงเฉพาะ
รหัสต่อไปนี้เป็นเรื่องธรรมดามากเมื่อคุณต้องการสร้างข้อมูลปลอมสำหรับการทดสอบเช่นการได้รับค่าสุ่มก่อนค่าแรงขั้นต่ำและสูงสุด
การคัดลอกรหัสมีดังนี้:
var x = math.floor (math.random () * (สูงสุด - min + 1)) + min;
9. สร้างชุดของตัวเลขสุ่มระหว่างหมายเลข 0 และจำนวนสูงสุด
การคัดลอกรหัสมีดังนี้:
var numbersarray = [], สูงสุด = 100;
สำหรับ (var i = 1; numbersarray.push (i ++) <max;); // numbers = [0,1,2,3 ... 100]
10. สร้างชุดอักขระตัวอักษรและตัวเลขแบบสุ่ม
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น generaterandomalphanum (len) {
var rdmstring = "";
สำหรับ (; rdmstring.length <len; rdmstring += math.random (). toString (36) .substr (2));
ส่งคืน rdmstring.substr (0, len);
-
11. ขัดขวางอาร์เรย์ของตัวเลข
การคัดลอกรหัสมีดังนี้:
หมายเลข var = [5, 458, 120, -215, 228, 400, 122205, -85411];
numbers = numbers.sort (function () {return math.random () - 0.5});
/ * หมายเลขอาร์เรย์จะเท่ากับ [120, 5, 228, -215, 400, 458, -85411, 122205] *//
12. ฟังก์ชั่นสตริงทิม
ฟังก์ชั่นการตัดแต่งสามารถลบอักขระช่องว่างในสตริงและสามารถใช้ในหลายภาษาเช่น Java, C#และ PHP
การคัดลอกรหัสมีดังนี้:
string.prototype.trim = function () {return this.replace (/^/s+|/s+$/g, "");};
13. อาร์เรย์ผนวก
การคัดลอกรหัสมีดังนี้:
var array1 = [12, "foo", {name "joe"}, -2458];
var array2 = ["doe", 555, 100];
array.prototype.push.apply (array1, array2);
/ * array1 จะเท่ากับ [12, "foo", {name "joe"}, -2458, "doe", 555, 100] *//
14. แปลงวัตถุพารามิเตอร์เป็นอาร์เรย์
การคัดลอกรหัสมีดังนี้:
var argarray = array.prototype.slice.call (อาร์กิวเมนต์);
15. ตรวจสอบว่าพารามิเตอร์ที่กำหนดเป็นตัวเลข
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น ISNUMBER (n) {
return! isnan (parsefloat (n)) && isfinite (n);
-
16. ตรวจสอบว่าพารามิเตอร์ที่กำหนดเป็นอาร์เรย์
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น isarray (obj) {
return object.prototype.toString.call (obj) === '[อาร์เรย์วัตถุ]';
-
โปรดทราบว่าหากวิธีการเขียนใหม่ของ ToString () คุณจะไม่ได้รับผลลัพธ์ที่คาดหวัง
หรือคุณสามารถเขียนสิ่งนี้:
การคัดลอกรหัสมีดังนี้:
Array.isarray (OBJ); // เป็นวิธีการอาร์เรย์ใหม่
ในทำนองเดียวกันหากคุณใช้หลายเฟรมคุณสามารถใช้อินสแตนซ์ของอินสแตนซ์และหากมีเนื้อหามากเกินไปผลลัพธ์จะเป็นข้อผิดพลาดเช่นกัน
การคัดลอกรหัสมีดังนี้:
var myFrame = document.createElement ('iframe');
document.body.appendchild (myframe);
var myarray = window.frames [window.frames.length-1] .Array;
var arr = myarray ใหม่ (a, b, 10); // [A, B, 10]
// อินสแตนซ์ของ Will ไม่ทำงานอย่างถูกต้อง MyArray สูญเสียตัวสร้างของเขา
// ตัวสร้างไม่ได้แชร์ระหว่างเฟรม
arr อินสแตนซ์ของอาร์เรย์; // เท็จ
17. รับค่าสูงสุดและต่ำสุดจากอาร์เรย์ของตัวเลข
การคัดลอกรหัสมีดังนี้:
หมายเลข var = [5, 458, 120, -215, 228, 400, 122205, -85411];
var maxinnumbers = math.max.apply (คณิตศาสตร์, ตัวเลข);
var mininnumbers = math.min.apply (คณิตศาสตร์, ตัวเลข);
18. ล้างอาร์เรย์
การคัดลอกรหัสมีดังนี้:
var myarray = [12, 222, 1,000];
myArray.length = 0; // myArray จะเท่ากับ []
19. อย่าใช้ลบเพื่อลบรายการจากอาร์เรย์
นักพัฒนาสามารถใช้แยกแทนการใช้ลบเพื่อลบรายการอาร์เรย์ แทนที่จะลบรายการที่ไม่ได้กำหนดในอาร์เรย์ให้ใช้ลบแทน
การคัดลอกรหัสมีดังนี้:
รายการ var = [12, 548, 'a', 2, 5478, 'foo', 8852 ,, 'doe', 2154, 119];
items.length; // return 11
ลบรายการ [3]; // return true
items.length; // return 11
/ * รายการจะเท่ากับ [12, 548, "A", × 1 ที่ไม่ได้กำหนด× 1, 5478, "Foo", 8852, × 1 ที่ไม่ได้กำหนด "DOE", 2154, 119] */
ไม่เป็นไร...
การคัดลอกรหัสมีดังนี้:
รายการ var = [12, 548, 'a', 2, 5478, 'foo', 8852 ,, 'doe', 2154, 119];
items.length; // return 11
items.splice (3,1);
items.length; // return 10
/ * รายการจะเท่ากับ [12, 548, "A", 5478, "Foo", 8852, × 1 ที่ไม่ได้กำหนด× 1, "DOE", 2154, 119] */
วิธีการลบควรลบคุณสมบัติวัตถุ
20. ใช้แอตทริบิวต์ความยาวเพื่อลดอาร์เรย์ให้สั้นลง
ดังที่ได้กล่าวไว้ข้างต้นนักพัฒนายังสามารถใช้แอตทริบิวต์ความยาวเพื่อลดอาร์เรย์ให้สั้นลง
การคัดลอกรหัสมีดังนี้:
var myarray = [12, 222, 1,000, 124, 98, 10];
myArray.length = 4; // myArray จะเท่ากับ [12, 222, 1,000, 124]
หากค่าความยาวอาร์เรย์ที่คุณกำหนดสูงเกินไปความยาวของอาร์เรย์จะเปลี่ยนไปและค่าที่ไม่ได้กำหนดบางอย่างจะถูกกรอกลงในอาร์เรย์ คุณสมบัติความยาวของอาร์เรย์ไม่ได้อ่านอย่างเดียว
การคัดลอกรหัสมีดังนี้:
myArray.length = 10; // ความยาวอาร์เรย์ใหม่คือ 10
myArray [myArray.length - 1]; // ไม่ได้กำหนด