โหมดเข้มงวด
โหมดเข้มงวดถูกนำมาใช้โดย 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>