ES6入门笔记(二)

正则的扩展

1、RegExp构造函数

在ES5中,RegExp构造函数的参数有两种情况。第一种情况是,参数是字符串,这时第二个参数表示正则表达式的修饰符

第一个参数是字符串,第二个参数表示正则表达式的修饰符

第二个情况,参数是一个正则表达式

参数是一个正则表达式

但是ES5不允许此时使用第二个参数,添加修饰符,否则会报错

ES6改变了这种行为

如果RegExp构造函数第一个参数是一个正则对象,那么可以使用第二个参数指定修饰符。返回的正则表达啊是会忽略原有的正则表达式的修饰符,只使用新指定的修饰符

2、字符串的正则方法

ES6入门笔记(二)_第1张图片
没有具体实例,我也没有理解

3.u修饰符(ES6对正则表达式添加了u修饰符,含义为Unicode模式,用来正确处理大于\uFFFF字符)

原因是ES5不支持四个字节的UTF-16编码,而\uD83D\uDc2A是一个四个字节的UTF-16编码,ES5会将其识别为两个字符,导致第二行代码结果为true,第一行是ES6的写法,所以第一行结果为false。

注意:对于码点大于\0xfff的字符,点字符不能识别,必须加上u修饰符;使用u修饰符后,所有量词都会正确识别码点大于0xFFFF的Unicode字符;预定义模式,u修饰符也影响到预定义模式,能够正确识别玛点大于0xFFFF的Unicode字符;i修饰符;

必须加上u修饰符,才能识别
ES6入门笔记(二)_第2张图片
使用u修饰符后,所有量词都会正确识别码点大于0xFFFF的Unicode字符

4、y修饰符

除了u修饰符,还为正则表达式添加了y修饰符,叫做粘连修饰符。y修饰符与g修饰符类似,也是全局匹配,g修饰符只要剩余位置中存在匹配就可,y修饰符确保匹配必须从剩余的第一个位置开始

ES6入门笔记(二)_第3张图片

5、sticky,与y修饰符相匹配,ES6的正则对象多了stciky属性,表示是否设置了y修饰符

6、flags属性,ES6为正则表达式新增了flags属性,会返回正则表达式的修饰符

ES6入门笔记(二)_第4张图片

7、RegExp.escape(),字符串必须转义,才能作为正则模式

8、S修饰符:doAll模式

9、后行断言

10、Unicode属性类

ES6入门笔记(二)_第5张图片

数值的扩展

ES6提供了二进制和八进制,分别用前缀0b和0o表示

二进制和八进制转化为十进制,使用Number方法可以转换

Number.isFinite()、Number.isNaN(),Number.isFinite()用来检查一个数值是否为有限的,Number.isNaN()用来检查一个值是否为NaN

ES6入门笔记(二)_第6张图片
判断一个是不是有限的
ES6入门笔记(二)_第7张图片
判断是不是非数值型的

Number.parseInt()、Number.parseFloat()移到Number对象上面,行为完全保持不变;

Number.isInteger() 用来判断一个值是否为整数;

Number.EPSILON,新增一个极小的常量Number.EPSILON其目的是为了为浮点数计算,设置一个误差范围;

安全整数和Number.isSafeInteger()用来判断一个整数是否落在这个范围内(-2^53-2^53)

Math对象扩展,Math.trunc()方法用于去除一个数的小数部分,返回整数部分;对于非数值,Math。trunc内部使用Number方法将其先转为数值;对于空值和无法截取整数的值,返回NaN;

ES6入门笔记(二)_第8张图片

Math.sign()判断一个数到底是整数、负数、还是零


ES6入门笔记(二)_第9张图片

Math.cbrt()计算一个数的立方根

Math.clz32():JavaScript的整数使用32位二进制形式表示,Math.clz32方法返回一个数的32位无符号整数形式有多少个前导0。(小数只考虑整数部分,对于空值或其他类型的值,Math.clz32方法会将他们转为数值)

ES6入门笔记(二)_第10张图片

Math.imul()方法返回两个数以32位带符号整数形式相乘的结果,返回也是一个32位的带符号整数

Math.fround()返回一个数的单精度浮点数形式

Math.fround()、Math.htpot()方法返回所有的平方和的平方跟

对数方法

1、Math.expm1() Math.expm1(x)返回ex-1,即返回Math.exp(x)-1.

2、Math.log1p(),返回一个1+x的自然对数,即Math.log(1+x).如果x小于-1,返回NaN

3、Math.log10(x)返回以10为底的x的对数。如果x小于0,则返回NaN。

4、Math.log2(),Math.log2(x)返回以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)

Math.signbit()(判断一个数的符号位是否设置了)

ES6入门笔记(二)_第11张图片

指数运算符 

ES6入门笔记(二)_第12张图片

你可能感兴趣的:(ES6入门笔记(二))