字符串
1.repeat()
repeat方法返回一个新字符串,表示将原字符串重复n次。参数如果是小数,会被取整。
1 2 3 4
| 'x'.repeat(3) // "xxx" 'hello'.repeat(2) // "hellohello" 'dota'.repeat(0) // "" 'dota'.repeat(2.9) // "dotadota"
|
2.模板字符串
模板字符串是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量,变量名写在${}之中。
1 2 3 4 5 6 7 8
| `I sure ${name} is a good boy` $('#list').html(` <ul> <li>first</li> <li>second</li> </ul> `);
|
3.padStart(),padEnd()
字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。
1 2 3 4 5
| 'x'.padStart(5, 'ab') // 'ababx' 'x'.padStart(4, 'ab') // 'abax' 'x'.padEnd(5, 'ab') // 'xabab' 'x'.padEnd(4, 'ab') // 'xaba'
|
上面代码中,padStart和padEnd一共接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。
正则
RegExp构造函数
ES5
1 2
| var regex = new RegExp('xyz', 'i'); var regex = new RegExp(/xyz/i);
|
ES6
1 2 3
| var regex = /xyz/i; new RegExp(/abc/ig, 'i').flags // "i" 原有正则对象的修饰符是ig,它会被第二个参数i覆盖。
|
数值
1.Number.isFinite(), Number.isNaN()
ES6 在 Number 对象上,新提供了 Number.isFinite() 和 Number.isNaN() 两个方法。
Number.isFinite()
用来检查一个数值是否为有限的(finite)
1 2 3 4
| Number.isFinite(15); // true Number.isFinite(0.8); // true Number.isFinite(NaN); // false Number.isFinite(Infinity); // false
|
Number.isNaN()
用来检查一个值是否为 NaN。
1 2 3 4
| Number.isNaN(NaN) // true Number.isNaN(15) // false Number.isNaN('15') // false Number.isNaN(true) // false
|
2.Number.parseInt(), Number.parseFloat()
ES6将全局方法parseInt()和parseFloat(),移植到Number对象上面,行为完全保持不变。
1 2 3 4 5 6 7
| // ES5的写法 parseInt('12.34') // 12 parseFloat('123.45#') // 123.45 // ES6的写法 Number.parseInt('12.34') // 12 Number.parseFloat('123.45#') // 123.45
|
3.Number.isInteger()
Number.isInteger()
用来判断一个值是否为整数。需要注意的是,在 JavaScript 内部,整数和浮点数是同样的储存方法,所以 3 和 3.0 被视为同一个值。
1 2 3 4 5
| Number.isInteger(25) // true Number.isInteger(25.0) // true Number.isInteger(25.1) // false Number.isInteger("15") // false Number.isInteger(true) // false
|
4.Math 对象的扩展
Math.trunc()
Math.trunc
方法用于去除一个数的小数部分,返回整数部分。
1 2 3 4 5 6 7
| Math.trunc(4.1) // 4 Math.trunc(4.9) // 4 Math.trunc(-4.1) // -4 Math.trunc(-4.9) // -4 Math.trunc(-0.1234) // -0 Math.trunc('123.456') // 123 对于非数值,Math.trunc内部使用Number方法将其先转为数值。 Math.trunc('foo'); // NaN 对于空值和无法截取整数的值,返回NaN。
|
Math.sign()
Math.sign
方法用来判断一个数到底是正数、负数、还是零。
它会返回五种值。
参数为正数,返回+1;
参数为负数,返回-1;
参数为0,返回0;
参数为-0,返回-0;
其他值,返回NaN。
1 2 3 4 5 6 7
| Math.sign(-5) // -1 Math.sign(5) // +1 Math.sign(0) // +0 Math.sign(-0) // -0 Math.sign(NaN) // NaN Math.sign('foo'); // NaN Math.sign(); // NaN
|
Math.cbrt()
Math.cbrt
方法用于计算一个数的立方根。
1 2 3 4 5 6
| Math.cbrt(-1) // -1 Math.cbrt(0) // 0 Math.cbrt(1) // 1 Math.cbrt(2) // 1.2599210498948734 Math.cbrt('8') // 2 对于非数值,Math.cbrt内部使用Number方法将其先转为数值。 Math.cbrt('hello') // NaN 对于空值和无法截取整数的值,返回NaN。
|
5.指数运算符
ES2016 新增了一个指数运算符(**)。
指数运算符可以与等号结合,形成一个新的赋值运算符(**=)。
1 2 3 4 5 6 7
| let a = 1.5; a **= 2; // 等同于 a = a * a; let b = 4; b **= 3; // 等同于 b = b * b * b;
|