谈一谈箭头函数
- ES6 允许使用
“箭头”(=>)
定义函数。 - 关于
this
箭头函数没有自己的this
,箭头函数内部的this
并不是调用时候指向的对象, 而是定义函数时所在函数的this
指向。 - 箭头函数不能用于构造函数,也就是不能使用
new
关键字调用。 - 箭头函数没有
arguments
对象, 只能使用rest
参数。
谈一谈 Symbol 类型
- ES6 引入了一种新的原始数据类型
Symbol
,表示独一无二的值。它是JavaScript
语言的第七种数据类型。 Symbol
值通过Symbol
函数生成 直接Symbol()
即可。Symbol
中传入的字符串没有任何意义,只是用来描述Symbol
的。Symbol
不能使用New
调用。- 类型转换的时候,不能转数字。
- 如果把
Symbol
当作一个对象的属性和方法的时候,一定要用一个变量来储存,否则定义的属性和方法没有办法使用。 for in
不能遍历出来,可以使用Object.getOwnPropertySymbols
方法来拿。
谈一谈 BigInt 类型
JavaScript
所有数字精度只能到 53 个二进制位(2的53次方),大于这个范围的整数,JavaScript
是无法精确表示的。- 大于或等于
2的1024次方
的数值,JavaScript
无法表示,会返回Infinity
。 - ES6 引入了一种新的数据类型
BigInt(大整数)
。BigInt
只用来表示整数,没有位数的限制,任何位数的整数都可以精确表示。 - 为了与
Number
类型区别,BigInt
类型的数据必须添加后缀n。 BigInt
与普通整数是两种值,它们之间并不全等。
谈一谈扩展运算符
- 扩展运算符(spread)是三个点(…)。它好比
rest
参数的逆运算,将一个数组转为用逗号分隔的参数序列,目前也可以用来展开数组。 - 作用(书写代码):
复制数组
合并数组
解构赋值
字符串转换为数组
谈一谈 reduce 的用法参数
reduce( )
:累加器
reduce
有两个参数
- 参数1:回调函数
(1):初始值或者上一次回调函数的的返回值
(2):当前遍历的数组的值
(3):当前数组值的下标
(4):原数组 - 参数2:初始值(如果没有,则数组的第一个值为初始值)
谈一谈模板字符串
- 模板字符串(
template string
)是增强版的字符串,用反引号(`)标识。可以嵌套变量,可以换行,可以包含单引号和双引号。 - 它可以当作普通字符串使用,也可以用来定义多行字符串。模板字符串中嵌入变量,需要将变量名写在
${}
之中。 - 大括号内部可以放入任意的
JavaScript
表达式,可以进行运算,以及引用对象属性。