《你不知道的js》值函数作用域和块作用域
一、函数中的作用域
定义:属于这个函数的全部变量都可以在整个函数的范围内使用及服用(事实上在嵌套的作用域中也可以使用)。
1.1 函数作用域有什么作用?
隐藏内部实现
可以把变量和函数包裹在一个函数的作用域中,然后用这个作用域来“隐藏”他们。 为什么要“隐藏”变量和函数? 遵循软件设计中,最小特权原则,也叫最小暴露原则。比如某个模块或对象的API设计。
规避冲突
避免同名标识符之间的冲突。 方式:1、全局命令空间 2、模块管理
1.2 块作用域
为什么需要块作用域?
for(var i = 0; i < 10; i++){
console.log(i);
}
我们在for循环的头部直接定义了变量i,通常是因为只想在for循环内部的上下文中使用i,而忽略了i会被绑定在外部作用域(函数或全局)中的事实。
创建块级作用域的形式有哪些?
- with
- try/catch
try {
undefined(); //执行一个非法操作来强制制造一个异常
} catch(err) {
console.log(err); //能够正常执行
}
console.log(err); //ReferenceError: err not found
- let
//let循环
for (let i = 0; i < 10; i++){
console.log(i);
}
console.log(i); //ReferenceError
for循环头部的let不仅将i绑定到来for循环的块中,事实上它将其重新绑定到了循环的每一个迭代中,确保使用上一个循环迭代结束时的值重新进行赋值。
- const 值是固定的常量。之后任何试图修改值的操作都会引起错误。
最后更新于 2023-12-19 06:54:20 并被添加「」标签,已有 2803 位童鞋阅读过。
此处评论已关闭