码迷,mamicode.com
首页 > 其他好文 > 详细

ES6系列一 let const

时间:2017-08-06 13:57:09      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:foo   ken   lang   log   operator   声明变量   一个   nbsp   ++   

一丶let

1.使用let声明一个变量,会生成一个独立的作用域,比var的作用域更为严谨,比如for循环

var a = [];
for (var i = 0; i < 10; i++) {
  a[i] = function () {
    console.log(i);
  };
}
a[6](); // 10
var a = [];
for (let i = 0; i < 10; i++) {
  a[i] = function () {
    console.log(i);
  };
}
a[6](); // 6

 

2.暂时性死区:在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”(temporal dead zone,简称 TDZ)。

3.不能重复性声明: 同一作用域下,var重复声明不会报错,let和const重复声明会报错。

二丶const

1.const声明一个只读变量,不可更改值,否则则会报错,但对象和数组可以更改内存指针。比如

const foo = {};

// 为 foo 添加一个属性,可以成功
foo.prop = 123;
foo.prop // 123


const a = [];
a.push(‘Hello‘); // 可执行
a.length = 0;    // 可执行
a = [‘Dave‘];    // 报错

ES6系列一 let const

标签:foo   ken   lang   log   operator   声明变量   一个   nbsp   ++   

原文地址:http://www.cnblogs.com/SunShineKG/p/7294311.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!