es6中的const和let

const

用于声明一个常量,该常量有自己的块级作用域。常量不能重新声明,不能重新赋值。并且必须要有初始值。

const a = 10;
a = 20;
console.log(a)// 会报错

const b;
console.log(b)// 会报错
var b;
console.log(b)// undefined

//块级作用域
function test() {
    const a = [1,2,3];
    (function test2() {
        const a = [4,5,6];
        console.log(a);
    })();
    console.log(a);
}
执行结果
[4, 5, 6]
[1, 2, 3]
undefind //这是因为函数没有返回值

let

let 语句声明一个块级作用域的本地变量,并且可选的将其初始化为一个值。
let允许你声明一个作用域被限制在块级中的变量、语句或者表达式。与var关键字不同的是,var声明的变量只能是全局或者整个函数块的。

//块级作用域
function varTest() {
  var x = 1;
  if (true) {
    var x = 2;  // 同样的变量!
    console.log(x);  // 2
  }
  console.log(x);  // 2
}

function letTest() {
  let x = 1;
  if (true) {
    let x = 2;  // 不同的变量
    console.log(x);  // 2
  }
  console.log(x);  // 1
}
//打印索引值
假如有5个li,当点击当前的li打印当前元素的索引值。
var li = querySelectorAll('li');
for (var i=0; i<li.length; i++){
    li[i].onclick = function(){
        console.log(i);//每次打印都是5
    }
}

let li = document.querySelectorAll('li');
for(let i=0; i<li.length; i++) {
    li[i].onclick = function() {
        console.log(i);//打印的是当前索引
    }
}
在程序或者函数的顶层,let并不会像var一样在全局对象上创造一个属性,比如

var x = 'global';
let y = 'global';
console.log(this.x); // "global"
console.log(this.y); // undefined
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值