โหมดเข้มงวด
โหมดเข้มงวดถูกนำมาใช้โดย ECMAScript 5 กับจาวาสคริปต์ การใช้โหมดเคร่งครัดของจาวาสคริปต์ที่ไม่มีการโต้ตอบสามารถตรวจพบได้ง่ายเนื่องจากจะทำให้เกิดข้อผิดพลาด ทำให้การดีบักจาวาสคริปต์ทำได้ง่ายมาก และช่วยให้นักพัฒนาหลีกเลี่ยงข้อผิดพลาดที่ไม่จำเป็นได้
เนื่องจากโหมดเข้มงวดจะส่งข้อยกเว้นเมื่อพบตัวแปรที่ไม่ได้ประกาศ หน่วยความจำรั่วจะลดลงอย่างมาก โหมดเข้มงวดสามารถเปิดใช้งานได้โดยใช้ "ใช้แบบเข้มงวด" หน้าโค้ดที่ต้องการโหมดเข้มงวด
ในตัวอย่างต่อไปนี้ มีการใช้ตัวแปรสองตัว ตัวหนึ่งอยู่นอกฟังก์ชัน และอีกตัวอยู่ภายในฟังก์ชัน ตัวแปรที่ใช้ภายนอกฟังก์ชันจะไม่ถูกประกาศ ในขณะที่ตัวแปรที่ประกาศภายในฟังก์ชันจะถูกประกาศโดยใช้คีย์เวิร์ด var การใช้โหมดเข้มงวดภายในฟังก์ชันจะไม่ทำให้เกิดข้อผิดพลาดใดๆ เนื่องจากตัวแปรถูกประกาศพร้อมๆ กัน ค่าในตัวแปรภายนอกฟังก์ชันจะแสดงขึ้นเนื่องจากไม่มีโหมดเข้มงวดที่ใช้
ตัวอย่าง-1
<html>
<body>
<script>
myString1 = "non-strict mode will allow undeclared variables"
document.write(myString1);
document.write("</br>");
function myFun(){
"use strict"
var myString2 = "Strict mode will allow declared variables"
document.write(myString2);
}
myFun();
</script>
</body>
</html> เอาต์พุตnon-strict mode will allow undeclared variables
Strict mode will allow declared variables
ในตัวอย่างต่อไปนี้ ตัวแปรจะไม่ถูกประกาศภายในฟังก์ชันและใช้โหมดเข้มงวด ดังนั้นค่าภายในตัวแปรนั้นจะไม่ถูกดำเนินการและเกิดข้อผิดพลาด เราพบข้อผิดพลาดในคอนโซลเบราว์เซอร์
ตัวอย่าง-2
<html>
<body>
<script>
myString1 = "non-strict mode will allow undeclared variables"
document.write(myString1);
document.write("</br>");
function myFun(){
"use strict"
myString2 = "Strict mode will allow declared variables"
document.write(myString2);
}
myFun();
</script>
</body>
</html>