【ES6】变量声明-var-let-const-区别与联系-总结

  • ECMAScript变量是松散类型的,意思是变量可以用于保存任何类型的数据
  • 每个变量只不过是一个用于保存任意值的命名占位符
  • 有3个关键字可以声明变量:var、const和let
  • 其中,var在ES的所有版本中都可以使用,而const和let只能在ES6及更晚的版本中使用

1. var

var message;

定义了一个名为message 的变量,可以用它保存任何类型的值,不初始化的情况下,变量会保存一个特殊值undefined

1.1 var 声明作用域

  • 使用var 操作符定义的变量会成为包含它的函数的局部变量

1.2 var 声明提升

  • 使用var关键字声明的变量会自动提升(hoist)到函数作用域顶部
function foo() {
   
    console.log(age);
    var age = 26;
}
foo(); // undefined

等价于

function foo() {
   
    var age;
    console.log(age);
    age = 26;
    }
foo(); // undefined
  • 这就是所谓的“提升”(hoist),也就是把所有变量声明都拉到函数作用域的顶部。
  • 反复多次使用var声明同一个变量也没有问题

2. let(注意与var的区别)

2.1 let 声明作用域(块级作用域)

  • 与var最明显的区别是,let 声明的范围是块作用域,而var声明的范围是函数作用域
  • let 不允许同一个块作用域中出现冗余声明
 if (true) {
    
    let a
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值