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

ES6学习总结之一

时间:2017-07-14 23:05:36      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:命令   reference   有用   变量   erro   注意   code   let   class   

let和const命令

1.let命令

(1)基本用法

let和var一样拥有声明·变量,但是let声明的变量只在let命令所在的代码块内有效

{
  let a=5;
  var b=10;    
    
}

a // ReferenceError: a is not defined

b // 10

可以看到代码块中let声明的a在代码块之外是undefined.

这里可以注意下,let声明在for循环中会 很有用

var a=[];
for(var i=0;i<5;i++){
       a[i]=function(){
            console.log(i);
       }
}

a[2]() //5


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

a[2]() //2

从上面可以看出,let声明的变量只在当轮循环的代码块中有效,所以每次循环的i都是新变量,而对于var声明的i,由于是全局的,所以每次循环都会被新值覆盖,使得输出的是最后一轮的i值

 

(2)let不存在变量提升

console.log(a); //ReferenceError
let a=2;

let声明的变量一定要先声明后使用

 

(2)let不允许重复声明

//报错
function(){
let a=2;
let a=3;
}
//报错
function(){
let a=2;
var a=3;
}
//报错
function(a){
let a=2;
}
//不会报错
function(a){
{
let a=5;
}
}

let不可以在同一作用域反复声明

 

 

2.const命令

关于const命令,有以下几个重点:

1.const用来声明常量,一旦声明,不可以更改其值

2.const和 let一样,声明只在所在的块级作用域内有效

3.const声明的常量也不提升,只能先声明后使用

4.和let一样,const也不可以重复声明

关于const声明的 常量,有一个注意点,如下

const con={};
con.prop=2223;

con.prop //2223


con={} // TypeError: "con" is read-only

当const声明的常量是引用类型时,常量名指向数据所在的地址,const命令只是保证常量名指向的地址不变,并不保证该地址的数据不变!

再看一个例子:

const arr=[];

arr.push("你好呀") ; //不报错

arr.length=2; //不报错

arr=["吃了吗"]; //报错

const声明的arr是个数组,其本身可写,可以添加属性,但是不可以将其指向另一个数组!

 

ES6学习总结之一

标签:命令   reference   有用   变量   erro   注意   code   let   class   

原文地址:http://www.cnblogs.com/Cathamerst/p/7172423.html

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