ES6 -- 基本函数扩展

一、字符串的扩展

主要增长对大于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的码点app

字符串的扩展函数

  • includes(), startsWith(), endsWith()增长的匹配功能,函数

  • padStart(),padEnd():若是不全,用指定字符补全字符串code

  • repeat() 返回一个新字符串,表示将原字符串重复n次。对象

模板字符串

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

模板字符串(template string)是加强版的字符串,用反引号(`)标识。它能够看成普通字符串使用,也能够用来定义多行字符串,或者在字符串中嵌入变量。ip

标签模板

重要应用,jsx

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

  • 多语言转换(国际化处理)string

  • 在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属性的值应该是一个数组。

二、数值的扩展

二进制和八进制表示法

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

三、数组的扩展

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转码器已经支持。

四、函数的扩展

  • 使用函数参数的默认值,分别哪些参数是能够省略的与解构赋值默认值结合使用

相关文章
相关标签/搜索