let和var定义变量的区别

一、基本用法(let和var区别)

ES6新增了let命令,用来声明变量,它的用法类似于var,var声明的是全局变量。let声明的变量只在代码块里有效。

{

  let a =10;

  var b =1;

}

console.log(a);  //a is not defined

console.log(b);       // 1

上述代码中,分别使用let和var声明了俩个变量,然后在代码块外面调用俩个变量,结果let声明的变量报错,var声明的变量返回正确值。这表明,let声明的变量只在代码块里有效。

for循环中的计算器,很适合let声明

for (let i =0 ;i <10 ; i++){

  //....

}

console,log(i) ;     //i is not defined

在上述代码中。计算器i只在for循环体中有效。

for (var  i =0 ;i <10 ; i++){

  //....

}

console,log(i) ;     //i =10

在上述代码中。变量i是全局变量。

------------------------------------------------------------------------------------------------------------------------------------

 

总结: 1、var属于ES5规范,let属于ES6规范。

    2、var有预处理机制,let没有。 即预处理机制也就是说变量提升。

     3、  作用域的不同,var是全局作用域,let是局部作用域。

注意:1、声明变量时,一定要初始化。即var a =1;

    2、 即使在内部,声明变量一定要加上var,不要直接写a =1 ;否则 变量a也会被提升为全局变量。 

        比如说在for循环里面声明的值,就不是全局的 如:for {var a = 'xxx'}

 

posted @ 2020-05-27 17:13  柠檬IT  阅读(485)  评论(0编辑  收藏  举报