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);}
相关文章推荐
- ECMAScript6学习笔记-字符串扩展
- ECMAScript6简介和学习笔记(三)symbol proxy reflect set map
- ECMAScript6学习笔记 ——let、const、变量解构赋值
- ECMAScript6学习笔记
- ECMAScript6-学习笔记(数值的扩展)
- ECMAScript6-学习笔记(数组的扩展)
- ECMAScript6简介和学习笔记(一) let const 解构
- ECMAScript6学习笔记-Reflect
- ECMAScript6 学习笔记
- ECMAScript6简介和学习笔记(二)数组 函数 对象
- ECMAScript6学习笔记-数组扩展
- ECMAScript6-学习笔记(简介)
- ECMAScript6-学习笔记(let和const命令)
- ECMAScript6学习笔记-Set,Map
- ECMAScript6学习笔记-对象扩展
- ECMAScript6学习笔记-Symbol
- ECMAScript6学习笔记-解构赋值
- ECMAScript6学习笔记-Generator
- ECMAScript6 学习笔记(一)
- ECMASCRIPT6----学习笔记