let var const声明变量的不同

1、声明变量的作用域有区别

    var声明没有块级作用域,可以跨块访问,不能跨函数访问,let和声明有块级作用域,块级作用域就是{ }里面的地方

{
  var varTest = 'test var OK.';
  let letTest = 'test let OK.';
 
  {
    var varTest = 'varTest changed.';
    let letTest = 'letTest changed.';
  }
 
  console.log(varTest); //输出"varTest changed.",内部"{}"中声明的varTest变量覆盖外部的letTest声明
  console.log(letTest); //输出"test let OK.",内部"{}"中声明的letTest和外部的letTest不是同一个变量
}

 2、let不能在同一块作用域下声明相同变量名的变量

    var声明变量可以重复声明,后一次声明的变量值会覆盖前次声明的值,而let会直接报错

var arg1 = 'test'
console.log('var第一次申明:' + arg1)    //var第一次申明:test
var arg1 = 'test2'
console.log('var第二次申明:' + arg1)    //var第二次申明:test2

 3、let不会进行变量提升,var声明的变量会进行变量提升

	console.log(arg1)        //test
	console.log(arg2)        //报错
	var arg1 = 'test'
	let arg2 = 'test2'

4、const和let基本一致,不过它定义的是常量,不可修改

  注意:若const定义的是对象类型,则里面的属性和方法可以更改,因为存储的是地址值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值