ES6笔记(一)

1.ES6是JavaScript规范,之所以不叫JavaScript,一是因为商标问题,java是SUN公司的商标,只有Netscape才能使用JavaScript这个名字,且JavaScript已经被Netscape公司注册为商标。二是想体现这门语言的制定者是ECMA,而不是Netscape.

2.ES6原意是指JavaScript5.1以后的下一代版本,泛指ES2015、ES2016、ES2017等等。

3.ES5变量提升,全局作用域、函数作用域,ES6暂时性死区,块级作用域

4.do表达式

let x = do {
  let t = f();
  t * t + 1;
}; x为整个块级作用域的返回值

5.顶层对象和global对象

6.解构赋值

7.字符串:中文,charPointAt(0,2,for...of), fromCodePoint, at, normailize(NFC,NFD), includes, startsWith, endsWith, repeat, padStart, padEnd, 模板字符串,标签模板,String.raw(),模板字符串的限制(转义字符)

8.正则的扩展:RegExp构造函数的参数(第二个有效),u修饰符(支持中文),y修饰符(同g,不同之处:后一次匹配从上一次匹配成功的下一个字符开始,属性:lastIndex,index,source,flags,sticky,RegExp.escape()(字符串转义),s修饰符(dotAll),后行断言,Unicode属性类。

9.数值的扩展:二进制(0b,0B),八进制(0o,0O),Number.isFinite(),Number.isNaN()(只能判断number类型),Number.parseInt(),Number.parseFloat(),Number.isInteger(),Number.EPSILON(极小数,用于浮点数计算精确度),Number.MAX_SAFE_INTEGER,N umber.MIN_SAFE_INTEGER, Number.isSafeInteger(), Math.trunc()(返回整数部分),Math.sign()(判断一个数是正数、负数还是0,返回值:+1,-1,+0,-0,NAN),Math.cbrt()(计算一个数的立方根),Math.clz32()(返回一个数的32位无符号整数形式有多少个前导0),Math.imul()(返回两个数以32位带符号整数形式相乘的结果,返回的也是一个32位的带符号整数),Math.fround()(返回一个数的单精度浮点数形式),Math.hypot()(返回所有参数的平方和的平方根),Math.expm1()(返回ex - 1,即Math.exp(x) - 1),Math.log1p()(返回1 + x的自然对数,即Math.log(1 + x)。如果x小于-1,返回NaN),Math.log10()(返回以10为底的x的对数。如果x小于0,则返回NaN),Math.log2()(返回以2为底的x的对数。如果x小于0,则返回NaN),

  • Math.sinh(x) 返回x的双曲正弦(hyperbolic sine)
  • Math.cosh(x) 返回x的双曲余弦(hyperbolic cosine)
  • Math.tanh(x) 返回x的双曲正切(hyperbolic tangent)
  • Math.asinh(x) 返回x的反双曲正弦(inverse hyperbolic sine)
  • Math.acosh(x) 返回x的反双曲余弦(inverse hyperbolic cosine)
  • Math.atanh(x) 返回x的反双曲正切(inverse hyperbolic tangent)

10.数组的扩展:Array.from(arr, ()=>{})(转化类数组和可遍历的对象为真正的数组),Array.of()(用于将一组值,转换为数组。如果没有参数,就返回一个空数组。这个方法的主要目的,是弥补数组构造函数Array()的不足。因为参数个数的不同,会导致Array()的行为有差异。),数组实例的copyWithin(),数组实例的find()和findIndex()(这两个方法都可以接受第二个参数,用来绑定回调函数的this对象。另外,这两个方法都可以发现NaN,弥补了数组的IndexOf方法的不足。),数组实例的fill(),数组实例的entries(),keys()和values(),数组实例的includes()(该方法属于ES7,但Babel转码器已经支持。),数组的空位

ES5对空位的处理,已经很不一致了,大多数情况下会忽略空位。

  • forEach(), filter(), every()some()都会跳过空位。
  • map()会跳过空位,但会保留这个值
  • join()toString()会将空位视为undefined,而undefinednull会被处理成空字符串。

ES6则是明确将空位转为undefined

数组的常用方法见  https://www.cnblogs.com/obel/p/7016414.html

原文地址:https://www.cnblogs.com/byayn/p/10840955.html