var、let 、const

提升: 虽然变量还没有被声明,但是我们却可以使用这个未被声明的变量,这种情况就叫做提升,并且提升的是声明。 注意:其实不仅变量会提升函数也会被提升。

let的特点:

  1. let声明不是全局变量,具有块级函数作用域,不会发生变量提升
  2. let声明的变量不能通过window.变量名进行访问 ,访问会出现:undefined
  3. 形如for(let x…)的循环是每次迭代都为x创建新的绑定

const的特点:

const指针指向的地址不可以改变,指向地址的内容是可以改变的。因为const只是保证对象的指针不改变,而对象的内容改变不会影响到指针的改变,所以对象的属性内容是可以修改的。

const PI = {};
PI.a = 3.15; //修改成功

const NS = 1;
Ns =2 ; //修改不成功

var :重复声明、不能限制修改,函数级;

关于提升

变量不会提升,但是函数会提升,一个例子:foo会报错

test();

function test() {
  foo();
  bar();
  var foo = function() {
    console.log("this won't run!");
  };
  function bar() {
    console.log('this will run!');
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值