傅全有简历,画客网,夜店女生头像
var:用var声明的变量在该声明区域是可全局访问的。
let:let是ES6的新标准,用let声明的变量,只在声明该变量的块级区域可访问(区别于var的全局访问)。
以下面代码为例说明var与let的不同。
let num=9;var flag=10;/**块级变量声明 let*/function let_test(){ for(let i=0;i<4;i++){ var y=2; console.log("i="+i+","+"y="+y); } console.log("在函数 let_test中访问num"+","+"num="+num); console.log("for循环之外访问:y="+y); console.log("for循环之外访问:i"); console.log(i);}
前两行代码声明变量的方式都是全局变量,可在全局调用。
用let声明的变量i,属于块级变量,而用var声明的变量y属于“全局变量”(此时的全局是相对与let_test函数来说的,y是该函数中的全局变量),然后在for循环中打印i和y的值:
i=0,y=2
i=1,y=2
i=2,y=2
i=3,y=2
结果表明可正常访问,再来测试一下在for循环之外能否正常访问,在for循环打印i和y的值:
for循环之外访问:y=2
for循环之外访问:i
e:\vscode\hello\hanShu.js:35
console.log(i);
^
ReferenceError: i is not defined
结果表明,即使实在函数的"块级区域"声明的变量y也能在函数体内出该块级区域之外的地方访问,这就是var的神奇之处,一旦声明即为“全局变量”。而用i变量脱离了声明它的区域就不能访问了,let类型的变量妥妥的“局部变量”啊!
再来说说const,和Java一样,它是常量,一经赋值不可更改,而它的可访问域和let一样,不再多说。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
css3 flex布局 justify-content:space-between 最后一行左对齐
网友评论