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,内层变量可能会覆盖外层变量。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值