您的位置:首页 > 其它

ECMAScript6 学习笔记

2017-08-24 19:32 260 查看

ECMAScript 6学习笔记

一、let 和 const 命令

1、let

1、ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。
2、var命令会发生”变量提升“现象,即变量可以在声明之前使用,值为undefined。这种现象多多少少是有些奇怪的,按照一般的逻辑,变量应该在声明语句之后才可以使用。
3、暂时性死区,在代码块内,使用let命令声明变量之前,该变量都是不可用的。
4、let不允许在相同作用域内,重复声明同一个变量。


2、const

1、const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。
2、const的作用域与let命令相同:只在声明所在的块级作用域内有效
3、const命令声明的常量也是不提升,同样存在暂时性死区,只能在声明的位置后面使用。
4、const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址不得改动。


一、变量的解构赋值

1、基本用法

1、本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。
let [a, b, c] = [1, 2, 3];
2、对象的结构赋值
对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。如果变量名与属性名不一致,必须写成下面这样。


baz // "aaa"

let obj = { first: 'hello', last: 'world' };

let { first: f, last: l } = obj;

f // 'hello';l // 'world'


3、交换变量的值,let x = 1;let y = 2;[x, y] = [y, x];
4、函数只能返回一个值,如果要返回多个值,只能将它们放在数组或对象里返回。有了解构赋值,取出这些值就非常方便。
function example() {return {
foo: 1,
bar: 2
}; }
let { foo, bar } = example();
5、解构赋值对提取JSON对象中的数据,尤其有用。
let jsonData = { id: 42, status: "OK",data: [867,5309]};
let { id, status, data: number } = jsonData;
6、遍历Map结构
var map = new Map();map.set('first','hello');map.set('second', 'world');
for (let [key, value] of map) { console.log(key + " is " + value);}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: