最近在实现某些特定的功能时,突然发现js中的作用域非常的奇特,所以把相关的内容记录下来,供大家分析,今天主要来细谈一下,javascript中的作用域问题,其实在js中主要分为三种作用域:
三、块级作用域:
原本javascript中的没有块级作用域,ES6中新增了块级作用域,块级作用域是由{}包裹起来的,包括了 if 和for 后面的{}
//es5中没有块级作用域,变量a在整个js中都可以获取到
if (true) {
var a = 10;
}
console.log(a);
此时,把var 换成let (let和const有块级作用域)试试看
//ES6: let const 有块级作用域 只能在{}之中生效
if (true) {
let b = 20;
}
console.log(b);//报错: b is not defined
结果:
总结:
以上为本期给大家分享的js中的三种作用域场景主要是针对常用的场景,后期还会分享更多好的文章,如有技术陈述不明了,请大家提一提宝贵意见!及时修改正问题.谢谢大家阅读!