"use strict" เป็นคำสั่งสั่งงาน (directive) เปิดใช้งาน Strict Mode ใน JavaScript (ES5) ทำให้โค้ดรันภายใต้กฎเข้มงวดมากขึ้น ช่วยป้องกันบั๊กและปฏิบัติการที่ไม่ปลอดภัย
การประกาศ
เพิ่ม "use strict"; บนสุดของสคริปต์ (Global) หรือบนสุดของฟังก์ชัน (Function-scoped)
<!DOCTYPE html>
<html>
<body>
<p>จะเกิด Error เนื่องจากใช้ตัวแปรโดยไม่ได้ประกาศ</p>
<p>กด F12 ดู Error ใน Console</p>
<script>
"use strict";
a = 1; // ReferenceError: a is not defined
</script>
</body>
</html>
สิ่งที่ Strict Mode ทำ
| พฤติกรรม | Strict Mode | Non-Strict (Sloppy) |
|---|---|---|
| ตัวแปรไม่ได้ประกาศ | ReferenceError | สร้าง Global Variable อัตโนมัติ |
| this ในฟังก์ชันทั่วไป | undefined | Global Object (window) |
| ลบ property ที่ไม่ได้ | TypeError | เงียบๆ ไม่ทำอะไร |
| Duplicate parameter names | SyntaxError | อนุญาต (ใช้ตัวสุดท้าย) |
| Octal literals (010) | SyntaxError | อนุญาต |
| คำสงวนอนาคต | SyntaxError | อนุญาตเป็นตัวแปร |
| with statement | SyntaxError | อนุญาต |