es6基础理解

1.let 和 const 命令

1.1 let 命令,用来声明变量。

1.2  let 声明的变量只在它所在的代码块中有效。

1.3不存在变量提升。

2.1 const 声明一个只读的常量,一旦声明,常量的值就不能改变。

2.2 const 命令声明的常量也是不提升,同样存在暂时性死去,只能在声明的位置后面使用。

2.3 const 声明的常量,也与let一样不可重复声明。

2.es6 变量的解构赋值 点击打开链接

2.1 es6允许按照一定的模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。

2.2  模式匹配,只要等号两边的模式相同,左边的变量就会被赋予对应的值

eg:

let [a, [[b], c] = [1,[[2], 3];
a //1
b //2
c //3
let [x, ,y] = [1,2, 3];
x //1
y //3
let[head, ...tail] = [1, 2, 3, 4];
head  // 1
tail // [2,3,4]
let [x, y, ...z] = ['a']
x //'a'
y // undefined
z // []
如果解构不成功,变量的值就等于 undefined
var [foo] = []; 
 var [bar, foo] = [1];   
以上两种情况都属于解构不成功 foo 的值都会等于 undefined.

2.3 不完全解构

let [x, y] = [1, 2,3];
x // 1,
y // 2
let [a, [b], d] = [1, [2, 3] 4];
a // 1
b // 2
d // 4
上面的两个例子,都属于不完全解构,但是可以成功。如果等号的右边不是数组,会报错。

3.es6对象的解构赋值

3.1 对象的解构与数组有一个重要的不同,数组的元素是按次序排列的,变量的取值有他的位置决定;而对象的属性没有次序,变零必须与属性同名,才能渠道正确的值

var {a, b}  = {a:aaa", b:'bbb};
a: // "aaa"
b // "bbb"
var {baz} = {foo:"aaa", bar :"bbb"};
baz  // undefined

3.2 如果变量名与属性名不一致

var {foo:baz} = {foo: "aaa", bar: "bbb"};

baz  // "aaa"

4.字符串的解构赋值

const [a, b, c, d, e] = 'hello';
a // "h"
b // "e"
c // "l"
d //"l"
e // "o"
类似数组的对象都有一个 length 属性, 因此还可以对这个属性解构赋值。
let {length : len} = 'hello';
len // 5
5,用途

5.1 交换变量的值

:[x, y] = [y,x];

5.2 从函数返回多个值

返回一个数组
 function example() {
return [1,2,3];
}
var [a, b, c] = example();
返回一个对象
function example() {
return {
foo: 1,
bar:2
};
}
var  {foo, bar } = example();

猜你喜欢

转载自blog.csdn.net/itlishuang/article/details/80663553
今日推荐