เป็นเวลานานแล้วที่ JavaScript พัฒนาโดยไม่มีปัญหาความเข้ากันได้ มีการเพิ่มคุณสมบัติใหม่ให้กับภาษาในขณะที่ฟังก์ชันเก่าไม่เปลี่ยนแปลง
นั่นมีประโยชน์ในการไม่ทำลายโค้ดที่มีอยู่ แต่ข้อเสียก็คือความผิดพลาดหรือการตัดสินใจที่ไม่สมบูรณ์ของผู้สร้าง JavaScript จะติดอยู่ในภาษานั้นตลอดไป
เป็นเช่นนี้จนกระทั่งปี 2009 เมื่อ ECMAScript 5 (ES5) ปรากฏขึ้น มันเพิ่มคุณสมบัติใหม่ให้กับภาษาและแก้ไขคุณสมบัติบางอย่างที่มีอยู่ เพื่อให้โค้ดเก่าใช้งานได้ การแก้ไขส่วนใหญ่จะปิดไว้ตามค่าเริ่มต้น คุณต้องเปิดใช้งานอย่างชัดเจนด้วยคำสั่งพิเศษ: "use strict"
คำสั่งดูเหมือนสตริง: "use strict"
หรือ 'use strict'
เมื่ออยู่ที่ด้านบนของสคริปต์ สคริปต์ทั้งหมดจะทำงานในลักษณะ "สมัยใหม่"
ตัวอย่างเช่น:
"ใช้อย่างเข้มงวด"; // รหัสนี้ทำงานในรูปแบบที่ทันสมัย -
อีกไม่นาน เราจะได้เรียนรู้ฟังก์ชันต่างๆ (วิธีจัดกลุ่มคำสั่ง) ดังนั้น เราควรทราบล่วงหน้าว่า "use strict"
สามารถใส่ไว้ที่จุดเริ่มต้นของฟังก์ชันได้ การทำเช่นนั้นจะเปิดใช้งานโหมดเข้มงวดในฟังก์ชันนั้นเท่านั้น แต่โดยปกติแล้วผู้คนจะใช้มันทั้งสคริปต์
ตรวจสอบให้แน่ใจว่า “use strict” อยู่ที่ด้านบน
โปรดตรวจสอบให้แน่ใจว่า "use strict"
อยู่ที่ด้านบนของสคริปต์ ไม่เช่นนั้นโหมดเข้มงวดอาจไม่ได้เปิดใช้งาน
ไม่ได้เปิดใช้งานโหมดเข้มงวดที่นี่:
alert("โค้ดบางส่วน"); // "use strict" ด้านล่างจะถูกละเว้น--ต้องอยู่ด้านบนสุด "ใช้อย่างเข้มงวด"; // ไม่ได้เปิดใช้งานโหมดเข้มงวด
เฉพาะความคิดเห็นเท่านั้นที่อาจปรากฏเหนือ "use strict"
ไม่มีทางที่จะยกเลิก use strict
ไม่มีคำสั่งเช่น "no use strict"
ที่จะเปลี่ยนเครื่องยนต์ให้กลับมาทำงานแบบเก่า
เมื่อเราเข้าสู่โหมดเข้มงวด จะไม่มีการย้อนกลับไปอีก
เมื่อคุณใช้คอนโซลนักพัฒนาซอฟต์แวร์เพื่อเรียกใช้โค้ด โปรดทราบว่าจะไม่มี use strict
ตามค่าเริ่มต้น
บางครั้ง เมื่อ use strict
สร้างความแตกต่าง คุณจะได้ผลลัพธ์ที่ไม่ถูกต้อง
ดังนั้นจะ use strict
ในคอนโซลได้อย่างไร?
ขั้นแรก คุณสามารถลองกด Shift + Enter เพื่อป้อนหลายบรรทัด และใส่ use strict
ไว้ด้านบน เช่นนี้
'ใช้อย่างเข้มงวด'; <Shift+Enter เพื่อขึ้นบรรทัดใหม่> // ...รหัสของคุณ <เข้าไปเพื่อวิ่ง>
ใช้งานได้กับเบราว์เซอร์ส่วนใหญ่ เช่น Firefox และ Chrome
หากไม่เป็นเช่นนั้น เช่น ในเบราว์เซอร์รุ่นเก่า ก็มีวิธีที่น่าเกลียดแต่เชื่อถือได้เพื่อให้แน่ใจว่า use strict
ใส่ไว้ในกระดาษห่อประเภทนี้:
(การทำงาน() { 'ใช้อย่างเข้มงวด'; // ...รหัสของคุณที่นี่... -
คำถามอาจฟังดูชัดเจน แต่ก็ไม่เป็นเช่นนั้น
ใคร ๆ ก็สามารถแนะนำให้เริ่มสคริปต์ด้วย "use strict"
… แต่คุณรู้ไหมว่าอะไรเจ๋ง?
JavaScript สมัยใหม่รองรับ “คลาส” และ “โมดูล” ซึ่งเป็นโครงสร้างภาษาขั้นสูง (เราจะพูดถึงมันอย่างแน่นอน) ซึ่งช่วยให้ use strict
ได้โดยอัตโนมัติ ดังนั้นเราจึงไม่จำเป็นต้องเพิ่มคำสั่ง "use strict"
หากเราใช้
ดังนั้นในตอนนี้ "use strict";
เป็นแขกรับเชิญที่ด้านบนของสคริปต์ของคุณ หลังจากนั้น เมื่อโค้ดของคุณทั้งหมดอยู่ในคลาสและโมดูล คุณอาจละเว้นได้
ณ ตอนนี้ เรามาทำความรู้จักกับ use strict
โดยทั่วไปกันดีกว่า
ในบทถัดไป ขณะที่เราเรียนรู้คุณลักษณะของภาษา เราจะเห็นความแตกต่างระหว่างโหมดเข้มงวดและโหมดเก่า โชคดีที่มีไม่มากนักและทำให้ชีวิตเราดีขึ้นจริงๆ
ตัวอย่างทั้งหมดในบทช่วยสอนนี้ถือว่าโหมดเข้มงวด เว้นแต่ (น้อยมาก) จะระบุไว้เป็นอย่างอื่น