1. เมื่อเชื่อมต่อสตริงในเบราว์เซอร์เวอร์ชันต่ำกว่า (เช่น IE6, IE7 เป็นต้น) การใช้วิธีรวมของอาร์เรย์จะมีประสิทธิภาพมากกว่าการใช้เครื่องหมาย + เพื่อเชื่อมต่อ (เช่น ['aaa', 'bbb', 'ccc'].join () มีประสิทธิภาพมากกว่า 'aaa'+'bbb'+'ccc');
2. อาร์เรย์:
ป๊อปมีประสิทธิภาพมากกว่าการเปลี่ยนเกียร์ และการดันมีประสิทธิภาพมากกว่าการไม่เปลี่ยนเกียร์ นี่เป็นสิ่งสำคัญสำหรับการออกแบบโครงสร้างฮีปไบนารี วิธีที่ดีที่สุดคือวางองค์ประกอบที่ใหญ่ที่สุดหรือเล็กที่สุดไว้ที่ส่วนท้ายของอาร์เรย์
3. ควรใช้การดำเนินการกะเมื่อปัดเศษตัวเลข:
1.1 >> 0;
4. ใช้ปริมาณโดยตรงเพื่อสร้างอาร์เรย์และวัตถุ:
วาร์ ก = [];
วาร์ โอ = {};
5. อย่าซ้อนระดับวัตถุมากเกินไปเพื่อลดการค้นหาวัตถุ:
อย่าใช้ abcde วิธีการออกแบบนี้จะได้รับวัตถุ e
6. ค่าที่สอดคล้องกันของคีย์-ค่า เมื่อเทียบกับกรณีสวิตช์ คีย์-ค่าที่สอดคล้องกัน มีประสิทธิภาพมากกว่ากรณีสวิตช์ ได้รับการทดสอบ โดยเบราว์เซอร์ต่าง ๆ คุณสามารถอ่านบทความเกี่ยวกับการเปรียบเทียบนี้ การทดลองขนาดเล็ก javascript;
7. หากคุณใช้ jq จะมีการเปรียบเทียบระหว่าง $('xxxx').empty().append('xxxxxxx'); และ $('xxxxx').html('xxxxx'); ผลลัพธ์ก็คือ $ ('xxxx').empty().append('xxxxxxx'); ชนะ ที่อยู่บทความคือ jQuery การทดลองขนาดเล็ก;
8. วนซ้ำ
ใน JavaScript เราสามารถใช้สามลูป: for(;;), while() และ for(in) ในบรรดาสามลูปเหล่านี้ for(in) นั้นไม่มีประสิทธิภาพอย่างยิ่งเนื่องจากจำเป็นต้องสืบค้นคีย์แฮช ควรใช้ให้น้อยที่สุด ประสิทธิภาพของ for(;;) และ while loop ควรบอกว่าเทียบเท่าโดยทั่วไป (เมื่อใช้ในชีวิตประจำวัน)
หากตัวแปรลูปเพิ่มขึ้นหรือลดลง อย่ากำหนดค่าให้กับตัวแปรลูปเพียงอย่างเดียว ใช้ตัวดำเนินการ ++ หรือ -- เมื่ออ่านครั้งล่าสุด
หากคุณต้องการเปรียบเทียบกับความยาวของอาร์เรย์ คุณควรใส่แอตทริบิวต์ความยาวของอาร์เรย์ลงในตัวแปรท้องถิ่นล่วงหน้าเพื่อลดจำนวนการสืบค้น
9. ตัวแปรท้องถิ่นและตัวแปรส่วนกลาง
ความเร็วในการเข้าถึงของตัวแปรภายในนั้นเร็วกว่าตัวแปรส่วนกลาง เนื่องจากจริงๆ แล้วตัวแปรส่วนกลางเป็นสมาชิกของอ็อบเจ็กต์ส่วนกลาง ในขณะที่ตัวแปรเฉพาะที่จะถูกวางไว้บนสแต็กของฟังก์ชัน
10. อย่าใช้ Eval
การใช้ eval เทียบเท่ากับการเรียกกลไกการตีความอีกครั้งเพื่อรันเนื้อหาขณะรันไทม์ ซึ่งใช้เวลานาน ในขณะนี้ เทมเพลตฟังก์ชันสามารถใช้งานได้โดยใช้การปิดที่รองรับโดย JavaScript (สำหรับรายละเอียดเกี่ยวกับการปิด โปรดดูเนื้อหาที่เกี่ยวข้องกับการเขียนโปรแกรมเชิงฟังก์ชัน)
11. การต่อสตริง
หากคุณกำลังต่อท้ายสตริง วิธีที่ดีที่สุดคือใช้การดำเนินการ s+=anotherStr แทน s=s+anotherStr;
12. แปลงตัวเลขเป็นสตริงแล้วใช้ "" + 1 แม้ว่าจะดูน่าเกลียดไปหน่อย แต่อันที่จริงนี่มีประสิทธิภาพมากที่สุดในแง่ของประสิทธิภาพ:
("" +) > สตริง() > .toString() > สตริงใหม่()
บทความนี้ค่อนข้างคล้ายกับ "ปริมาณโดยตรง" ด้านล่าง ลองใช้การดำเนินการภายในที่สามารถใช้ได้ในเวลาคอมไพล์ให้เร็วกว่าการดำเนินการของผู้ใช้ที่ใช้ในรันไทม์
String() เป็นฟังก์ชันภายใน ดังนั้นจึงรวดเร็วมาก ในขณะที่ .toString() จำเป็นต้องสืบค้นฟังก์ชันในต้นแบบ ดังนั้นจึงไม่เร็วเท่ากับ new String() ที่ใช้ในการส่งคืนสำเนาที่ตรงกัน
13. แปลงตัวเลขทศนิยมให้เป็นจำนวนเต็ม ซึ่งมีแนวโน้มที่จะเกิดข้อผิดพลาดมากกว่า จริงๆ แล้ว parseInt() ใช้ในการแปลงสตริงให้เป็นตัวเลข ไม่ใช่ระหว่างตัวเลขทศนิยมกับจำนวนเต็ม Math.floor() หรือ Math.round()
14. การดำเนินการข้ามสายอักขระ
ในการดำเนินการวนซ้ำกับสตริง เช่น การแทนที่และการค้นหา ควรใช้นิพจน์ทั่วไป เนื่องจากความเร็วของลูปของ JavaScript นั้นค่อนข้างช้า และการทำงานของนิพจน์ทั่วไปเป็น API ที่เขียนด้วยภาษา C และประสิทธิภาพดีมาก ;
15. ตัวจับเวลา
หากคุณกำหนดเป้าหมายโค้ดที่ทำงานอย่างต่อเนื่อง คุณไม่ควรใช้ setTimeout แต่ใช้ setInterval setTimeout จำเป็นต้องรีเซ็ตตัวจับเวลาทุกครั้ง
กำลังอัปเดต...โปรดติดตาม!