删除数组尾部元素
更改数组的length值
使用对象结构来模拟命名参数
之前的方法: 使用对象
{ a: a1,b:b1}
来定义配置多项参数的传入
fn({ foo: 'Hello', bar: 'Hey!', baz: 42 })
ES2015中 使用对象解构 : 无须声明来赋值一个变量
//对象解构
function fn ({ foo = 'Hi', bar = 'Yo!', baz = 13 }){}
//对象解构 + 参数可选(此时可以通过 fn() 没有参数的情况下调用函数)
function fn ({ foo = 'Hi', bar = 'Yo!', baz = 13 } = {}){}
数组解构
{ [key] :foo } = {z:"bar"}
== > foo = "bar"
对象属性计算名
var thearr = '1997, John , john@doe.com';
var {2:country , 4: state} = thearr.split(',');
Switch语句中使用范围值
//假设传入参数 temp
switch(true){
case (temp 0): ...... break;
case (temp >0 && temp 100): .... break;
default: ....
}
await 多个async 函数
async 声明一个函数是异步;await是用于等待异步完成,只能在async中使用。
async/await的时候,可以使用Promise.all来await多个async函数
await Promise.all([Async(),Async2(),Async3()])
创建pure Object
var pure object = Object.create(null);
格式化JSON代码
JSON.stringify 讲一个对象字符化; 或格式化输出JSON对象
var obj ={
foo: { bar: [11, 22, 33, 44], baz: { bing: true, boom: 'Hello' } }
}
JSON.stringify(obj, null, 4); //4就是数据总共有四层
数组中移除重复元素
使用集合语法和Spread操作,很容易将重复的元素移除。
Spread操作符(...) 用于: 函数传参数组生成
const removeDuplicateItems = arr => [...new Set(arr)];
removeDuplicateItems([42, 'foo' ,42 , 'foo', true, true]);
平铺多维数组
spread操作
const arr =[11, [22,33],[44,55] ,66];
const flatArr = [].concat(...arr);
function flattenArray(arr) {
const flattened = [].concat(...arr);
return flattened.some(item => Array.isArray(item)) ? flattenArray(flattened) : flattened;
}
const arr = [11, [22, 33], [44, [55, 66, [77, [88]], 99]]];
const flatArr = flattenArray(arr);
//=> [11, 22, 33, 44, 55, 66, 77, 88, 99]