ES6 -- 基础函数扩大

1、字符串的扩大

主要增添对大于0xFFFF的码点的支撑:

for...of轮回遍历

var text = String.fromCodePoint(0x20BB7);

for (let i = 0; i < text.length; i++) {
  console.log(text[i]);
}
// " "
// " "

for (let i of text) {
  console.log(i); //吉
}

这个遍历器最大的长处是可以辨认大于0xFFFF的码点

字符串的扩大函数

  • includes(), startsWith(), endsWith()增添的婚配功用,

  • padStart(),padEnd():假如不全,用指定字符补全字符串

  • repeat() 返回一个新字符串,示意将原字符串反复n次。

模板字符串

$("#result").append(`
  There are <b>${basket.count}</b> items
   in your basket, <em>${basket.onSale}</em>
  are on sale!
`);

模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以看成一般字符串运用,也可以用来定义多行字符串,或许在字符串中嵌入变量。

标签模板

主要运用,

  • 过滤HTML字符串,防备用户输入歹意内容

  • 多言语转换(国际化处置惩罚)

  • 在JavaScript言语当中嵌入其他言语 jsx//jsx言语

tag`Hello ${ a + b } world ${ a * b }`;
//等价于下面
tag(['Hello ', ' world ', ''], 15, 50)

i18n`Welcome to ${siteName}, you are visitor number ${visitorNumber}!`
// "迎接接见xxx,您是第xxxx位接见者!"

String.raw()

String.raw要领,每每用来充任模板字符串的处置惩罚函数,返回一个斜杠都被转义(即斜杠前面再加一个斜杠)的字符串,对应于替换变量后的模板字符串。

String.raw要领可以作为处置惩罚模板字符串的基础要领,它会将一切变量替换,而且对斜杠举行转义,轻易下一步作为字符串来运用。

String.raw要领也可以作为一般的函数运用。这时候,它的第一个参数,应该是一个具有raw属性的对象,且raw属性的值应该是一个数组。

2、数值的扩大

二进制和八进制示意法

ES6供应了二进制和八进制数值的新的写法,离别用前缀0b(或0B)和0o(或0O)示意。

0b111110111 === 503 // true
0o767 === 503 // true
number新增要领:
  • Number.isFinite():搜检一个数值是不是非无限(infinity)。

  • Number.isNaN():搜检一个值是不是为NaN

  • Number.parseInt()

  • Number.parseFloat()ES6将全局要领parseInt()parseFloat(),移植到Number对象上面

  • Number.isInteger() 推断一个值是不是为整数

  • Number.EPSILON :极小的常量Number.EPSILON,的本质是一个可以接收的偏差局限。

  • 平安整数和Number.isSafeInteger() JavaScript可以正确示意的整数局限在-2^532^53之间(不含两个端点),凌驾这个局限,没法准确示意这个值。

  • Number.MAX_SAFE_INTEGERNumber.MIN_SAFE_INTEGER这两个常量,用来示意这个局限的上下限。

math新增要领
  • Math.trunc():用于去除一个数的小数部份,返回整数部份

  • Math.sign(): 用来推断一个数究竟是正数、负数、照样零。

  • Math.cbrt要领用于盘算一个数的立方根。

  • Math.clz32要领返回一个数的32位无标记整数情势有多少个前导0。

  • Math.imul要领返回两个数以32位带标记整数情势相乘的效果,返回的也是一个32位的带标记整数。

  • Math.fround要领返回一个数的单精度浮点数情势。

  • Math.hypot要领返回一切参数的平方和的平方根

也新增以下函数

对数要领
三角函数要领
指数运算符

传统要领先挪用Number()将非数值的值转为数值,再举行推断,而这两个新要领只对数值有用,非数值一概返回false

3、数组的扩大

Array.from()

Array.from要领用于将两类对象转为真正的数组
罕见的相似数组的对象是DOM操纵返回的NodeList鸠合,以及函数内部的arguments对象。Array.from都可以将它们转为真正的数组。

// NodeList对象
let ps = document.querySelectorAll('p');
Array.from(ps).forEach(function (p) {
  console.log(p);
});

Array.of()

Array.of要领用于将一组值,转换为数组。

Array() // []
Array(3) // [, , ,]  参数个数只要一个时,实际上是指定数组的长度。
Array(3, 11, 8) // [3, 11, 8]

Array.of基础上可以用来替换Array()new Array(),而且不存在因为参数差别而致使的重载。它的行动异常一致。

copyWithin()

数组实例的copyWithin要领,在当前数组内部,将指定位置的成员复制到其他位置(会掩盖原有成员),然后返回当前数组。

find()和findIndex()

数组实例的find要领,用于找出第一个相符前提的数组成员。

fill()

fill要领运用给定值,添补一个数组。 用于空数组的初始化异常轻易。

entries(),keys()和values()

ES6供应三个新的要领——entries()keys()values()——用于遍历数组。它们都返回一个遍历器对象

includes()

返回一个布尔值,示意某个数组是不是包括给定的值,该要领属于ES7,但Babel转码器已支撑。

4、函数的扩大

  • 运用函数参数的默认值,离别哪些参数是可以省略的
    与解构赋值默认值连系运用

    原文作者:Siyi厶弋
    原文地址: https://segmentfault.com/a/1190000006735222
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞