ES6学习教程之块级作用域详解
前言
众所周知ES5之前javascript语言只有函数作用域和全局作用域,使用var来声明变量,var声明的变量还存在变量提升使人困惑不已。我们先来复习一下ES5的var声明,再对比学习let和const。
var
var声明之函数作用域和全局作用域。
来段代码体会一下:
functiongetName(){
if(1+1===2){
varname='xixi';
}
console.log(name);
}
getName();//xixi
在c或java语言中name本应该只在if块中使用的,但是在if的外面也可以访问到,这个就是js没有块级作用域的一种体现。这个弊端在for循环中体现的十分明显:
for(vari=0;i<10;i++){
//...
}
console.log(i);//10
vari的本意是声明个临时变量i,用来遍历数组等,本不应该在for循环的外部访问到,但现在却可以被访问到你说闹不闹心?好一点的程序员会用立即执行函数来模拟块级作用域,原来的我会注意一下尽量不使用相同的变量名
热门推荐
3 祝福语简短的微信
10 幼儿祝福语大全简短贺卡
11 感谢教官文案祝福语简短
12 鼠年同事祝福语简短创意
13 元旦祝福语 简短独特群发
14 妈咪跟我生日祝福语简短
15 给儿子新婚祝福语简短
16 伴娘祝福语长文案简短
17 恭喜高考完祝福语简短
18 生日祝福语送老公简短