Câu hỏi phỏng vấn Javascript
Câu hỏi

Strict mode trong JavaScript là gì?

Câu trả lời

Strict mode trong JavaScript là một tính năng cho phép bạn đặt một chương trình hoặc một hàm vào một "chế độ nghiêm ngặt" (strict operating context). Khi được kích hoạt, nó giúp phát hiện ra các lỗi tiềm ẩn, ngăn chặn hoặc báo lỗi cho một số hành vi không an toàn của JavaScript, và cải thiện hiệu suất thực thi mã. Để sử dụng strict mode, bạn chỉ cần thêm chuỗi "use strict"; vào đầu file JavaScript hoặc đầu một hàm

Tính năng và Lợi ích

  • Ngăn chặn sử dụng biến không được khai báo: Trong strict mode, việc sử dụng một biến mà không khai báo trước sẽ dẫn đến lỗi, giúp tránh được các vấn đề về phạm vi biến và hoisting không mong muốn.
  • Báo lỗi khi sử dụng delete: Không cho phép sử dụng delete với một biến, một hàm, hoặc một đối số hàm
  • Không thể sử dụng with: Cấm sử dụng câu lệnh with, giúp cải thiện hiệu suất mã và ngăn chặn các vấn đề về phạm vi biến
  • Giá trị this trong hàm không được tự động gán cho global object: Trong strict mode, giá trị this trong các hàm không được gọi trong một context đối tượng sẽ là undefined, giúp ngăn chặn việc thay đổi không mong muốn đối với global object.
  • Các lỗi silent được chuyển thành throwing errors: Nhiều lỗi mà trong "non-strict mode" sẽ bị im lặng và không báo lỗi, trong strict mode sẽ được báo lỗi, giúp dễ dàng phát hiện và sửa chữa.
  • Cấm một số từ khóa làm tên biến: Các từ khóa như eval, arguments không thể được sử dụng làm tên biến hoặc tên hàm.

Kích hoạt Strict Mode

Để kích hoạt strict mode, bạn thêm chuỗi "use strict"; vào đầu file JavaScript hoặc đầu một hàm. Điều này áp dụng strict mode cho toàn bộ script hoặc chỉ cho hàm đó

javascript Copy
"use strict";
function myFunction() {
  // Code ở đây sẽ chạy trong strict mode
}

Hoặc:

javascript Copy
function myFunction() {
  "use strict";
  // Chỉ code trong hàm này chạy trong strict mode
}

Kết luận

Strict mode là một công cụ hữu ích trong JavaScript, giúp làm cho mã của bạn trở nên an toàn và dễ bảo trì hơn bằng cách cung cấp một lớp kiểm tra và bảo vệ thêm. Nó khuyến khích các thực hành lập trình tốt và giúp phát hiện lỗi sớm trong quá trình phát triển.

junior

junior

Gợi ý câu hỏi phỏng vấn

middle

Ưu điểm và nhược điểm của việc sử dụng use strict là gì?

middle

Giải thích sự khác biệt về cách sử dụng foo giữa function foo() {}var foo = function() {} là gì?

middle

Kết quả đoạn code sau là gì? Hãy giải thích tại sao?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào