朝花夕拾 · 历史成长档案 · 早期足迹
本文记录于 2017-2019 年早期前端探索时期,保留当时的真实成长轨迹与思考,归档作技术演进参考。
参数处理&解构赋值
函数默认参数
与 Python 的区别 http://effbot.org/zone/default-values.htm 剩余参数
参数变为数组
Array.prototype.slice.call(arguments,2) Array.from(arguments).slice(2) function fn (a,b, …c){} 展开操作
[…iterableObj] = [1, 3, 5, 7, 9]; [0, 2, …iterableObj, 4, 6, 8];
解构赋值
[a, b] = [b, a]
[] () 前最好加;
[a, b, …rest] = [10, 20, 30, 40, 50] let {name, age} = frank [a=5, b=7] = [1]; [a, b] = f() [a, , b] = f(); {p: foo, q: bar} = o let {a = 10, b = 5} = {a: 3}; let {a:aa = 10, b:bb = 5} = {a: 3};
对象浅拷贝
{
let objA = {name: {a: 'x'}}
let objB = Object.assign({}, objA)
console.log(objB)
objB.name.a = 'b'
console.log(objA.name)
}//b对象合并 MDN 上更多的例子
对象属性加强
obj = { x, y } obj = {[“baz” + quux() ]: 42} 函数属性可以缩写
新的字符串
多行字符串 字符串里插入变量(插值) 函数接字符串
fn${name} 是一个 ${person}
styled-component 就是用的这个语法