var,let,const的异同

Var ,let,const的异同:

Js的变量是松散类型的,所谓松散类型就是可以用来保存任何类型的数据(变量只是一个用来保存值占位符而已)。

 

var

 

 var操作符定义的变量将成为定义该变量的作用域中的局部变量。

 注意:省略var可以定义全局变量,但是我们不推荐这种能够用法,应为在局部作用域中定义全局变量是很难维护的,而且有意的省略var操作符,也会由于相应的变量不会马上有定义而导致不必要的混乱。况且在严格模式下,给未经声明的变量赋值会抛出错误。

 

 Let :

 

1.       let声明的代码,只在let声明的代码块内有效,如果在代码块调用会报错。

{

        let a=5;

        var b=6;

    }

    console.log(a);//a会报错

console.log(b);

只在代码块内有效,比较适合于for循环,这样不会造成内存的泄露。

 

2.       不存在变量提升。变量一定在声明之后使用,否则会报错。

console.log(typeof a);

   let a;//会报错

注:因为不存在变量提升 typeof a 现在不是100%正确的方法了

3.       暂时性死缓:只要块级作用域内存在let命令,他所声明的变量就绑定在这个块级作用域内,不受外部的影响。(如果块级作用域内存在letconst命令,这个区块对这些命令声明的变量,一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错)。

  

4.       不允许重复声明变量。在一个区域块内,不允许重复声明一个变量。

{

    let a=1;//报错

    var a=2;

  }

Const

Const的用法与let类似

不同之处就在于:const声明一个只读的常量,常量值一旦声明,就不允许改变。一旦声明就必须初始化。不能留在以后再初始化,否则会报错。

Let 解决的问题:

1javaScript增加了块级作用域(立即执行函数不在必要了)。

2.用于循环计数,防止了变量泄露

2,内层变量可能会覆盖外层变量。

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页