关于大前端的笔记(1)

带标签的模板字符串:是一个函数的调用,其中调用的参数是模版字符串。
alert`test`
模版字符串中可以有多个变量。

使用…做数组解构的时候是浅复制。
Array.from:

Array.from可以接受第二个参数,用于对数组的每一项进行处理并返回。第三个参数,传进处理函数中。
ES6中对象的扩展:允许大括号里面写入变量和函数,作为对象的属性和方法。


但是上述两图中的用法(简洁表示法和属性名表达式)不能一起用,即不能写,let obj={[propKey]}。属性名表达式如果是一个对象,默认会自动转为字符串[object Object]。


js对象中支持super的写法,但用不好会报错。


对象的解构赋值:
单纯的解构赋值可以读取原型属性,扩展运算符的解构赋值读取不了原型属性。
关于Symbol类型:ES6引入了一种新的原始数据类型Symbol, 表示独一无二的值。js的8种数据类型(null, undefined, boolean, bigint, object, string, number, symbol)。Symbol值不能跟其他类型的值进行运算,否则会报错。
> let sym = Symbol('My symbol');
undefined
> String(sym)
'Symbol(My symbol)'
> sym.toString()
'Symbol(My symbol)'
> sym.description
'My symbol'
> let mySymbol=Symbol()
undefined
> let a = {}
undefined
> a[mySymbol] = 'hello'
'hello'
> a
{ Symbol(): 'hello' }
> let b = {
[mySymbol]: 'hello'
}
undefined
> b
{ Symbol(): 'hello' }
>
> let d = {}
undefined
> Object.defineProperty(d, mySymbol, {value: 'Hello', enumerable: true})
{ Symbol(): 'Hello' }
使用Symbol值定义对象的属性的时候,一定要写成方括号语法,否则会被当字符串。o[mySymbol] = x

Map: map数据结构的key值可以是string, object, function, NaN。可以用for..of和forEach两种方式来遍历。

Set:

