JavaScript 作用域与类型强制转换深度解析
1. 函数表达式名称作用域
在 JavaScript 中,函数表达式的名称作用域有其独特之处。看下面的代码:
let fn = function namedFn() {
// code ...
};
这里 namedFn 名称仅在函数体内可访问。有人可能错误认为它是在函数体内声明的,但并非如此,它在不同作用域中声明。以下代码可以证明:
let fn = function namedFn() {
let namedFn = 123;
console.log(namedFn);
};
let 不允许变量重复声明。若 namedFn 在函数作用域内声明,上述代码应报错,但实际没有,说明函数体内的 namedFn 实际上是对函数表达式名称的遮蔽。
2. 块级作用域
JavaScript 中的块级作用域指代码块(如 if 块或循环)内的作用域。在引入块级作用域的 let 和 const 之前,用 var 关键字定义的变量在块外也可访问,因为 var 声明的变量具有函数作用域。而 let
超级会员免费看
订阅专栏 解锁全文
678

被折叠的 条评论
为什么被折叠?



