Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

"use strict" ใน JavaScript ทำอะไร และเหตุผลคืออะไร

"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 ทำ

เหตุผล (Reasoning)

  • จับบั๊กง่ายขึ้น: ข้อผิดพลาดทั่วไปกลายเป็น Error จริง
  • ประสิทธิภาพ: Engine optimize ได้ดีกว่า (ไม่ต้องคาดเดา this, ไม่มี with)
  • ความปลอดภัย: ป้องกันการเข้าถึง global object ผิดๆ
  • รองรับอนาคต: ห้ามคำสงวนที่จะใช้ในรุ่นใหม่
  • มาตรฐาน: โค้ดสะอาด ตามมาตรฐานสมัยใหม่

ข้อควรระวัง: ไม่ควรผสม strict และ non-strict ในไฟล์เดียวกัน (อาจสับสน) ใช้ "use strict" ต่อไฟล์ หรือต่อฟังก์ชัน แต่อย่างสม่ำเสมอ

พฤติกรรมStrict ModeNon-Strict (Sloppy)
ตัวแปรไม่ได้ประกาศReferenceErrorสร้าง Global Variable อัตโนมัติ
this ในฟังก์ชันทั่วไปundefinedGlobal Object (window)
ลบ property ที่ไม่ได้TypeErrorเงียบๆ ไม่ทำอะไร
Duplicate parameter namesSyntaxErrorอนุญาต (ใช้ตัวสุดท้าย)
Octal literals (010)SyntaxErrorอนุญาต
คำสงวนอนาคตSyntaxErrorอนุญาตเป็นตัวแปร
with statementSyntaxErrorอนุญาต