1. แท็กปิดตัวเองโดยไม่ต้องใช้สคริปต์
ใช้แท็กปิดตัวเองในสคริปต์ แม้ว่ามันจะถูกกฎหมายใน XHTML แต่ก็ไม่สอดคล้องกับข้อกำหนด HTML และไม่สามารถแยกวิเคราะห์เบราว์เซอร์ที่ถูกต้องได้ ฉันใช้วิธีนี้เมื่อฉันแนะนำ ext ซึ่งทำให้สคริปต์ไม่สามารถดำเนินการได้อย่างถูกต้อง
<script src="example.js"/> --> <script src="example.js"></script>
2. ใส่สคริปต์ไว้หน้า </body>
หากคุณใส่ไฟล์สคริปต์ไว้ใน <head> คุณต้องดาวน์โหลดและเรียกใช้สคริปต์ก่อนที่จะแสดงหน้าซึ่งจะเพิ่มเวลารอของผู้ใช้ วางแผ่นสไตล์ใน <head> เพื่อป้องกันไม่ให้เนื้อหาแสดงอย่างผิดปกติ วิธีการทั่วไปมีดังนี้:
<! doctype html> <html lang = "en"> <head> <meta charset = "utf-8"> <title> เอกสาร </title> <link rel = "stylesheet" type = "css" href = "Theme.css"/> </head> src = "example.js"/> </body> </html>
3. ใช้โหมดที่เข้มงวดภายในฟังก์ชั่น
หากคุณใช้โหมดที่เข้มงวดนอกฟังก์ชั่นอาจทำให้รหัสของบุคคลที่สามและรหัสของเพื่อนร่วมงานไม่สามารถทำงานได้อย่างถูกต้อง ภายในฟังก์ชั่นมันสามารถส่งผลกระทบต่อรหัสของคุณเองเท่านั้นและไม่ใช่รหัสของคนอื่น ๆ
ฟังก์ชั่น myfunction () {"ใช้อย่างเข้มงวด"; // รหัสฟังก์ชั่น}4. อย่าละเว้น semicolon ในตอนท้ายของคำสั่ง
ไม่มีเครื่องหมายอัฒภาคที่ส่วนท้ายของรหัสสามารถทำให้เกิดข้อผิดพลาดในการบีบอัดได้อย่างง่ายดาย นอกจากนี้ในบางกรณีประสิทธิภาพของรหัสสามารถปรับปรุงได้ ล่ามไม่ควรใช้เวลาคาดเดาว่าจะแทรกเครื่องหมายอัฒภาค ปัญหาที่พบบ่อยอีกอย่างหนึ่งคือบางครั้งการแทรกเครื่องหมายอัฒภาคโดยอัตโนมัติสามารถทำผิดพลาดได้ดังนั้นจึงไม่แนะนำให้ละเว้นเครื่องหมายอัฒภาค
5. ใช้ VAR เพื่อกำหนดตัวแปร
ใช้คีย์เวิร์ด VAR เมื่อกำหนดตัวแปรและทั้งหมดจะสูงขึ้นไปถึงจุดเริ่มต้นของฟังก์ชั่น
ประโยชน์ของการทำเช่นนี้จะป้องกันการสร้างตัวแปรทั่วโลกโดยไม่รู้ตัวและทำให้รหัสของคุณเข้าใจง่ายขึ้น
ฟังก์ชัน myfunction () {var result = 10 + ค่า; ค่า var = 10; ผลตอบแทนผลลัพธ์;}ไม่มีปัญหากับไวยากรณ์ของฟังก์ชั่นนี้ แต่มันไม่ได้ใช้งานง่ายมากและไม่สอดคล้องกับตรรกะของมนุษย์ มันจะดีกว่าที่จะแก้ไขดังนี้:
funciton myfunction () {ผลลัพธ์ var; ค่า var; ผลลัพธ์ = 10 + ค่า; ค่า = 10; ผลการกลับมา; -ให้ฉันอธิบายให้คุณทราบว่ารหัสสองข้างต้นนั้นเทียบเท่าและค่าของผลลัพธ์คือ NAN JavaScript จะส่งเสริมการประกาศตัวแปรทั้งหมดในฟังก์ชั่นไปยังจุดเริ่มต้นของฟังก์ชั่น รหัส 1 จะกลายเป็นรหัส 2 เมื่อรหัสถูกเรียกใช้งาน เมื่อเรียกใช้เป็นผลลัพธ์ = 10 + ค่า; ค่าของค่าจะไม่ถูกกำหนดและ 10 จะถูกเพิ่มลงใน NAN จากนั้นค่าจะถูกกำหนดให้ 10
ทุกคนจะต้องชัดเจนเกี่ยวกับปัญหาที่เกิดจากตัวแปรระดับโลกมิฉะนั้นแนวคิดของเนมสเปซจะไม่ปรากฏขึ้น
6. ประกาศฟังก์ชั่นก่อนแล้วใช้มัน
เช่นเดียวกับการประกาศตัวแปรการประกาศของฟังก์ชั่นนั้นยังสูงขึ้นโดยเอ็นจิ้น JavaScript ดังนั้นในรหัสการเรียกใช้ฟังก์ชันสามารถปรากฏขึ้นก่อนการประกาศของฟังก์ชั่น อีกสิ่งหนึ่งที่น่าสังเกตคือการประกาศฟังก์ชั่นไม่ควรปรากฏในบล็อกคำสั่งเช่น:
if (เงื่อนไข) {function myfunction () {alert ("true"); }} else {function myfunction () {alert ("false"); }} myfunction ();เมื่อเราเรียกใช้รหัสเราพบว่าผลลัพธ์จะเกี่ยวข้องกับเบราว์เซอร์ มันส่งออกจริงใน Chrome 51 และ Firefox 46 และ FALSE ใน IE 10 ดังนั้นพยายามหลีกเลี่ยงการประกาศฟังก์ชั่นในบล็อกคำสั่ง
7. ใช้ typeof null underfined ด้วยความระมัดระวัง
NULL เป็นค่าพิเศษซึ่งเรามักจะสับสนกับไม่ได้กำหนด สถานการณ์ต่อไปนี้ควรใช้ NULL:
ไม่ควรใช้ null ในสถานการณ์ต่อไปนี้:
วิธีที่ดีที่สุดในการทำความเข้าใจ NULL คือการใช้เป็นตัวยึดตำแหน่งสำหรับวัตถุ เหตุผลที่เรามักจะสับสน Null และไม่ได้กำหนดคือเราคิดว่า NULL และ Undefined เป็นตัวแปรที่ไม่ได้เริ่มต้น แต่ไม่ได้กำหนดเท่านั้นหมายความว่าตัวแปรยังไม่ได้เริ่มต้นและ NULL หมายความว่ามันเป็นจุดเริ่มต้นเป็นวัตถุ ดูรหัสต่อไปนี้:
Var Person; console.log (คนประเภท); //undefinedConsole.log(Typeof foo); // undefinedvar house = null; console.log (บ้านประเภท); //วัตถุ
ดังนั้นพยายามอย่าใช้ typeof เพื่อตรวจสอบว่าตัวแปรนั้นเริ่มต้นหรือไม่ คุณไม่สามารถแน่ใจได้ว่าตัวแปรไม่มีอยู่หรือตัวแปรไม่ได้เริ่มต้น การกลับมาเป็นโมฆะก็ไม่แน่ใจว่าตัวแปรได้รับการกำหนดอย่างถูกต้องหรือไม่ดังนั้นควรระวังให้ใช้ typeof
8. ระวังประเภทตัวเลข
ฉันเชื่อว่าทุกคนรู้ว่าจำนวนเต็ม JavaScript สนับสนุนทศนิยม, Octal, และค่าตัวอักษรเลขฐานสิบหก หากค่าตัวเลขในค่าตัวอักษรเกินช่วงในค่าแปดค่าศูนย์ชั้นนำจะถูกละเว้นและค่าตัวเลขที่ตามมาจะถูกแยกวิเคราะห์เป็นทศนิยม
console.log(012); //10
console.lgo (082); // 82
หากมีการใช้ octal และ hexadecimal สำหรับทศนิยมจะมีข้อผิดพลาดทางไวยากรณ์ อีกประเด็นหนึ่งคือตัวอักษรแปดประการนั้นไม่ถูกต้องในโหมดที่เข้มงวด ทุกคนรู้ปัญหาของข้อผิดพลาดในการคำนวณจุดลอยตัว สิ่งนี้เป็นจริงสำหรับการคำนวณจุดลอยตัวทั้งหมดตามค่า IEEE754 ดังนั้นอย่าทดสอบค่าจุดลอยตัวที่เฉพาะเจาะจง
มีค่าพิเศษในประเภทตัวเลข NAN (ไม่ใช่ตัวเลข) ซึ่งใช้เพื่อระบุว่าควรส่งคืนค่า แต่ไม่ใช่ประเภทตัวเลข น่านและค่าใด ๆ ไม่เท่ากันรวมถึงน่านเอง เราสามารถใช้ฟังก์ชัน ISNAN () เพื่อทดสอบ
9. การกำหนดแบบไดนามิกโดยใช้การดำเนินการแบบลอจิคัล
สิ่งที่คุณต้องการ
var person = {อายุ: 10} เงื่อนไข var; var myvar = เงื่อนไข && บุคคล; แจ้งเตือน (myVar)หากเงื่อนไขถูกแปลงเป็นประเภทบูลีนเท็จดังนั้นเงื่อนไข myVAR = ถ้าเป็นจริงดังนั้น myVAR = บุคคล
var person = {อายุ: 10} เงื่อนไข var; var myvar = เงื่อนไข || บุคคล; แจ้งเตือน (MyVar)หากเงื่อนไขถูกแปลงเป็นบูลีนและจริงแล้ว myVar = เงื่อนไขถ้าเท็จ, myvar = บุคคล
10. อย่าใช้คำสั่งด้วย
เหตุผลสำคัญที่ไม่ได้ใช้คือในโหมดที่เข้มงวดไวยากรณ์ตัวเองปิดการใช้งานด้วยคำสั่งซึ่งแสดงให้เห็นว่าคณะกรรมการ ECMAScript เชื่อมั่นว่าไม่ควรใช้ ดูตัวอย่างต่อไปนี้:
var book = {title: "javascript ที่บำรุงรักษาได้", ผู้แต่ง: "Nicholas C. zakas"}; var message = "The Book is"; ด้วย (หนังสือ) {message += title; ข้อความ + = "โดย" + ผู้แต่ง;}ปัญหาเกี่ยวกับรหัสข้างต้นคือมันเป็นเรื่องยากสำหรับเราที่จะแยกแยะตำแหน่งที่ชื่อและผู้แต่งปรากฏขึ้นและมันก็ยากที่จะแยกแยะตัวแปรท้องถิ่นเพื่อที่อยู่จากข้อความหรือทรัพย์สินของหนังสือ ยิ่งไปกว่านั้นเครื่องมือ JavaScript และเครื่องมือการบีบอัดไม่สามารถปรับรหัสนี้ให้เหมาะสมดังนั้นพวกเขาจึงไม่สามารถคาดเดาความหมายที่ถูกต้องของรหัสได้
โอเคมีสิบรายการแล้วมาพบกันต่อไปอีกสิบรายการ