Câu hỏi

Hãy giải thích về ScopeScope Chain trong Javascript?

Câu trả lời

Scope trong JavaScript

Scope trong JavaScript xác định khả năng truy cập của biến và hàm ở các phần khác nhau trong một đoạn code. Có hai loại scope chính: global scope và local scope

Global Scope

Biến được khai báo ngoài tất cả các hàm là biến toàn cục (global) và có thể được truy cập từ bất kỳ đâu trong mã JavaScript. Ví dụ:

var name = 'GlobalName'; // Biến toàn cục

function showName() {
  console.log(name); // Truy cập biến toàn cục từ bên trong hàm
}

showName(); // In ra: GlobalName

Local Scope

Biến được khai báo bên trong một hàm là biến cục bộ (local) và chỉ có thể được truy cập từ bên trong hàm đó. Mỗi hàm định nghĩa một scope riêng, và biến cục bộ không thể được truy cập từ bên ngoài hàm đó:

function showName() {
  var localName = 'LocalName'; // Biến cục bộ
  console.log(localName); // Truy cập biến cục bộ từ bên trong hàm
}

showName(); // In ra: LocalName
console.log(localName); // Uncaught ReferenceError: localName is not defined

Scope Chain

Scope chain là cơ chế mà JavaScript sử dụng để tìm kiếm biến và hàm. Khi một biến không được tìm thấy trong scope hiện tại, JavaScript sẽ tìm kiếm trong scope cha, và tiếp tục như vậy cho đến khi tìm thấy biến hoặc đến khi đạt đến global scope

Mỗi function định nghĩa một scope riêng, và mỗi function được định nghĩa bên trong một function khác sẽ tạo ra một nested scope. Biến được định nghĩa trong một scope có thể được truy cập từ bất kỳ nested scope nào bê...

Bạn cần đăng nhập để xem
middle

middle

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

middle

Bạn có thể đưa ra một ví dụ về hàm curry và giải thích tại sao cú pháp này lại có ích?

middle

Tại sao, việc để nguyên phạm vi toàn cục của một trang web và không can thiệp vào nó lại là một ý tưởng tốt?

senior

Trong JavaScript hàm map có thể lặp qua các thuộc tính của một đối tượng không?

Bình luận

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

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