让和var区别:
(var i=0; i<5,我+ +){ setTimeout(()=祝辞{ console.log (i);//5个5 },100) } console.log (i);//5 console.log ('=============') (让j=0; j<5; j + +) { setTimeout(()=祝辞{ console.log (j);//0, 1, 2, 3, 4 },100) } console.log (j);//报错j没有定义 >之前为什么用我们就可以显示正确结果,而var就不可以呢?
var是全局作用域,有变量提升的作用,所以在为中定义一个变量,全局可以使用,循环中的每一次给变量我赋值都是给全局变量我赋值。
让是块级作用域,只能在代码块中起作用,在js中一个{}中的语句我们也称为叫一个代码块,每次循环会产生一个代码块,每个代码块中的都是一个新的变量j。
es6中不是说让声明变量不能重复声明吗?看下边例子:
{ 让一个=123; } { 让一个=246; } console.log (a);//没有定义; { var b=1; } { var b=2; } console.log (b);//2,{}代表一个块,这个时候让声明的变量只在这个块中起作用,而这个块对var声明的变量不起作用。因为var是全局作用域。
让=1; 让=2;//未捕获SyntaxError:标识符' a '已经宣布//让不能重复声明 让b=1; var b=2;//未捕获SyntaxError:标识符' a '已经宣布//让不能重复声明 var c=3; var c=4; console.log (c)//4; var可以重复声明 >之前以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
es6为循环中让和var区别详解