ทำการปรับปรุงประสิทธิภาพเล็กน้อยสำหรับ JavaScript!
บทความนี้มีคำแนะนำ 24 ข้อเพื่อทำให้กระบวนการเขียนโค้ดของคุณง่ายขึ้นและมีประสิทธิภาพมากขึ้น บางทีคุณอาจยังเป็นมือใหม่และเพิ่งเขียน Hello World ของคุณเองเสร็จ มีเคล็ดลับมากมายที่เป็นประโยชน์ต่องานของคุณ บางทีคุณอาจรู้เคล็ดลับบางอย่างแล้ว ดังนั้นลองเรียกดูอย่างรวดเร็วและดูว่าทำได้หรือไม่ ค้นหาสิ่งใหม่!
หมายเหตุ: บทความนี้ใช้ออบเจ็กต์คอนโซลของ Firebug หลายครั้ง โปรดดูที่ Firebug Console API สำหรับข้อมูลเพิ่มเติมเบื้องต้นเกี่ยวกับ firebug โปรดคลิกที่นี่
1. ใช้ === แทน == มีตัวดำเนินการความเท่าเทียมกันที่แตกต่างกันสองตัวใน JavaScript: ===|!== และ ==|!= เมื่อเปรียบเทียบกันแล้ว แบบแรกควรค่าแก่การแนะนำมากกว่า โปรดลองใช้อันเดิมดูครับ
"หากวัตถุการเปรียบเทียบทั้งสองมีประเภทและค่าเดียวกัน === จะส่งกลับค่าจริง และ !== จะส่งกลับค่าเท็จ"
– JavaScript: ส่วนที่ดี
อย่างไรก็ตาม หากคุณใช้ == และ != คุณอาจพบปัญหาที่ไม่คาดคิดเมื่อใช้งานประเภทข้อมูลที่แตกต่างกัน JavaScript จะพยายามแปลงให้เป็นสตริง ตัวเลข หรือปริมาณบูลีนก่อนที่จะตัดสินความเท่าเทียมกัน
2. หลีกเลี่ยงการใช้ฟังก์ชัน Eval
ฟังก์ชัน Eval รับสตริงเป็นพารามิเตอร์ ดำเนินการสตริงเป็นคำสั่ง JavaScript และส่งกลับผลลัพธ์ (ข้อมูลอ้างอิง)
ฟังก์ชันนี้ไม่เพียงลดประสิทธิภาพการทำงานของสคริปต์ของคุณเท่านั้น แต่ยังเพิ่มความเสี่ยงด้านความปลอดภัยอย่างมาก เนื่องจากให้พลังงานกับพารามิเตอร์ที่เป็นข้อความมากเกินไป อย่าใช้มัน!
3. อย่าใช้การเขียนอย่างรวดเร็ว
ในทางเทคนิค คุณสามารถละเครื่องหมายปีกกาและอัฒภาคต่อท้ายได้เกือบทั้งหมด และเบราว์เซอร์ส่วนใหญ่จะดำเนินการคำสั่งต่อไปนี้อย่างถูกต้อง:
.if (มีตัวแปรอยู่บ้าง)
x = เท็จ
อย่างไรก็ตาม จะเกิดอะไรขึ้นหากเป็นกรณีนี้:
.if (มีตัวแปรอยู่บ้าง)
x = เท็จ
anotherFunctionCall();
คุณอาจคิดว่ามันเทียบเท่ากับข้อความต่อไปนี้:
ถ้า (มีตัวแปรอยู่บ้าง) {
x = เท็จ;
anotherFunctionCall();
-
น่าเสียดายที่นี่ไม่ใช่กรณี ความจริงก็คือว่ามันเทียบเท่ากับ:
ดังที่คุณจะสังเกตได้ว่า ไม่มีรอยเยื้องแฟนซีใดๆ เข้ามาแทนที่เหล็กจัดฟันแบบแฟนซีได้ ในทุกกรณี โปรดเขียนวงเล็บปีกกาและอัฒภาคสุดท้ายให้ชัดเจน บางครั้งอาจละเว้นได้เมื่อมีเพียงบรรทัดเดียว แม้ว่าจะไม่ควรอย่างยิ่งก็ตาม:
if(2 + 2 === 4) return 'ทำได้ดีมาก';
คิดเกี่ยวกับอนาคตให้มากขึ้น สมมติว่า ในกระบวนการพัฒนาในอนาคต คุณต้องเพิ่มคำสั่งเพิ่มเติมในคำสั่ง if? ไม่ต้องใส่วงเล็บแล้วใช่ไหม?
ถ้า (มีตัวแปรอยู่บ้าง) {
x = เท็จ;
-
anotherFunctionCall();