ES6基础
let 和 const 命令
// let声明的变量只在它所在的代码块有效,不存在变量提示,不受外部影响,不允许重复声明
let a = 10;
//const声明一个只读的常量。一旦声明,常量的值就不能改变
const PI = 3.1415;
变量的解构赋值
// 以前,为变量赋值,只能直接指定值。
let a = 1;
let b = 2;
let c = 3;
// ES6 允许写成下面这样。只要等号两边的模式相同,左边的变量就会被赋予对应的值,如果解构不成功,变量的值就等于undefined。
let [a, b, c] = [1, 2, 3];
// 解构不仅可以用于数组,还可以用于对象。变量必须与属性同名,才能取到正确的值。
let { foo, bar } = { foo: 'aaa', bar: 'bbb' };
// 对象的解构也可以指定默认值。
var {x, y = 5} = {x: 1};
//字符串也可以解构赋值
const [a, b, c, d, e] = 'hello';
a // "h"
b // "e"
c // "l"
d // "l"
e // "o"
// 函数的参数也可以使用解构赋值。
function add([x, y]){
return x + y;
}
add([1, 2]); // 3
字符串的扩展
// 字符串的遍历
for (let codePoint of 'foo') {
console.log(codePoint)
}
// 模板字符串 字符串中嵌入变量
let name = "Bob", time = "today";
`Hello ${name}, how are you ${time}?`
扩展运算符
//扩展运算符(spread)是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。
console.log(...[1, 2, 3])
// 1 2 3
console.log(1, ...[2, 3, 4], 5)
// 1 2 3 4 5
// 合并数组
const arr1 = ['a', 'b'];
const arr2 = ['c'];
const arr3 = ['d', 'e'];
// ES5 的合并数组
arr1.concat(arr2, arr3);
// [ 'a', 'b', 'c', 'd', 'e' ]
// ES6 的合并数组
[...arr1, ...arr2, ...arr3]
// [ 'a', 'b', 'c', 'd', 'e' ]
// 扩展运算符还可以将字符串转为真正的数组。
[...'hello']
// [ "h", "e", "l", "l", "o" ]
// Array.from() 将对象转为真正的数组
let arrayLike = {
'0': 'a',
'1': 'b',
'2': 'c',
length: 3
};
// ES6的写法
let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']
//Array.of方法用于将一组值,转换为数组。
Array.of(3, 11, 8) // [3,11,8]
Array.of(3) // [3]
Array.of(3).length // 1
对象扩展
// 简洁表示法
const baz = {foo};
baz // {foo: "bar"}
// 等同于
const baz = {foo: foo};
// 合并对象方法
const target = { a: 1 };
const source1 = { b: 2 };
const source2 = { c: 3 };
Object.assign(target, source1, source2);
target // {a:1, b:2, c:3}
Set数据结构
// 去除数组的重复成员
[...new Set(array)]
// 去除字符串里面的重复字符。
[...new Set('ababbc')].join('')
// "abc"
还没有评论,来说两句吧...