1.数组拼接的四种方法
// apply() 把b拼接到a上
let a = ['1', '2']
let b = ['2', '3']
a.push.apply(a, b)
alert(a)
// for循环拼接上去
let a = ['1', '2']
let b = ['2', '3']
b.forEach(item => a.push(item))
alert(a)
// concat拼接
let a = ['1', '2']
let b = ['2', '3']
alert(a.concat(b))
// ...扩展运算
let a = ['1', '2']
let b = ['2', '3']
alert([...a, ...b])
2.对象合并的方法
// Object.assign(target, ...sources) 该方法只会拷贝源对象自身的并且可枚举的属性到目标对象。
var a = { a: 1}
var b = { b: 2}
console.log(Object.assign(a, b))
// ...扩展运算符
var a = { a: 1}
var b = { b: 2}
console.log({...a,...b})

- ::first-letter 将样式添加到文本的首字母
- ::first-line 将样式添加到文本的首行
- ::before 在某元素之前插入某些东西
- ::after 在某元素之后插入某些东西
伪类:向某些选择器添加特殊的效果(:)
- p:last-child 选择属于其父元素最后一个子元素的每个p元素
- p:nth-child(n)选择属于父元素的第n个子元素的每个P元素
- :enabled 控制表单控件的可用状态
- :disabled控制表单控件的禁用状态
- :checked单选框或复选框被选中