一、JavaScript作用域
JavaScript作用域是什么?
作用域是在运行时代码中的某些特定部分中变量,函数和对象的可访问性。换句话说,作用域决定了代码区块中变量和其他资源的可见性。
作用域范围
// let 块级作用域,只能在{}中存在,出了块级作用域就未定义 let a = 1 if(a = 1){
let b = 2 } b // Uncaught ReferenceError: b is not defined
函数作用域
// var是函数作用域,即使变量定义到块级作用域里,在块级作用域外还是可以访问 let a = 1 if(a = 1){
var b = 2 } b // 2 // 变量放到函数中,在函数外访问不到,报错未定义 let g = function(){
var h = 4 } h // Uncaught ReferenceError: h is not defined
全局作用域
// window是全局作用域 window // Window {postMessage: ƒ, blur: ƒ, focus: ƒ, close: ƒ, parent: Window, …}
二、JavaScript作用域链
在当前作用域没有找到调用的变量,会往上级找该变量
// 在test函数中,没有定义father变量,因此沿着作用域链向上找到定义在全局作用域的father let father = 'a' let test = function(){
console.log(father) } test() // a
作用域与执行上下文
总结
good night
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/198741.html原文链接:https://javaforall.net
