ECMAScript6 学习笔记

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);}

你可能感兴趣的:(TypeScript)