var [a,b,c] = [1,2,3]

var [head, ...tail] = [1,2,3,4,] var [,,th] = [1,2,3]

var {foo,bar} = {foo:'aaa',bar:'bbb'}
var {baz, fo} = {fo:'aaa',bar:'bbb'}//baz没有成功赋值
var {bar:baz, fo} = {fo:'aaa',bar:'bbb'}
对象也可以同样解构:o = ....; var {p:[x,{y}]} = o;
[a,b] = [b,a]



解构循环map
for(let [key, value] of map) { console.log(key+' '+value)}
for(let [, value] of map) { console.log(value)}

b = 'u{20aa6}'//四字节的表示法
b.codePointAt(0)

模板字符串
a = `s sdf`
`${a} ${bar}`


0b11 === 3 0o11 === 9

Number.isInteger(23.0)

Math.trunc(45.5)

Array.from(arrayLike).map(x => x*x)
Arrray.of(1,2,3)
[1,3,4,5].find(a => { return a>3})
findIndex
Object.assign(a,b,c) //a是被添加的目标对象

Object.getPrototypeOf(a) Object.setPrototypeOf(object, proto) a.__proto__

变量和函数作为属性和方法
var s = { a: 'sdf', [kk]: 'df'}
var s = { a: 'sdf', ["hello"+kk]: 'df'}

新的原始数据类型Symbol,产生一个独一无二的值,不可能相等
let w3 = Symbol("safd")
