Computer >> Máy Tính >  >> Lập trình >> Javascript

Chế độ nghiêm ngặt trong JavaScript là gì?

Chế độ nghiêm ngặt

Chế độ nghiêm ngặt đã được ECMAScript 5 đưa vào javascript. Sử dụng chế độ nghiêm ngặt các lỗi im lặng của javascript có thể dễ dàng được phát hiện vì chúng sẽ tạo ra lỗi. Điều này làm cho việc gỡ lỗi javascript trở nên dễ dàng hơn nhiều và giúp các nhà phát triển tránh được những lỗi không đáng có.

Vì chế độ nghiêm ngặt ném ra một ngoại lệ khi gặp phải một biến chưa được khai báo, nên việc rò rỉ bộ nhớ sẽ được giảm thiểu đáng kể. Chế độ nghiêm ngặt có thể được bật bằng cách sử dụng "sử dụng nghiêm ngặt" ở phía trước mã mà chế độ nghiêm ngặt được yêu cầu.

Trong ví dụ sau, hai biến đã được sử dụng, một biến nằm ngoài hàm và một biến khác bên trong hàm. Biến được sử dụng bên ngoài hàm không được khai báo, trong khi biến được khai báo bên trong hàm được khai báo bằng từ khóa var. Sử dụng chế độ nghiêm ngặt bên trong hàm không tạo ra bất kỳ lỗi nào vì biến được khai báo cùng lúc giá trị trong biến bên ngoài hàm sẽ được hiển thị vì không có chế độ nghiêm ngặt nào được sử dụng.

Ví dụ-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>

Đầu ra
non-strict mode will allow undeclared variables
Strict mode will allow declared variables

Trong ví dụ sau, biến không được khai báo bên trong hàm và chế độ nghiêm ngặt được áp dụng. Vì vậy, giá trị bên trong biến đó sẽ không được thực thi và tạo ra lỗi. Chúng tôi có thể tìm thấy lỗi trong bảng điều khiển của trình duyệt.

Ví dụ-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>

Đầu ra
non-strict mode will allow undeclared variables