资讯专栏INFORMATION COLUMN

ES6 -- 基本函数扩展

YFan / 310人阅读

摘要:字符串的扩展主要增加对大于的码点的支持循环遍历吉这个遍历器最大的优点是可以识别大于的码点字符串的扩展函数增加的匹配功能,,如果不全,用指定字符补全字符串返回一个新字符串,表示将原字符串重复次。

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 ${basket.count} items
   in your basket, ${basket.onSale}
  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、函数的扩展

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/87887.html

相关文章

  • ES6学习手稿之基本类型扩展

    摘要:它是一个通用标准,奠定了的基本语法。年月发布了的第一个版本,正式名称就是标准简称。结语的基本扩展还有一些没有在这里详细介绍。 前言 ES6标准以及颁布两年了,但是,好像还没有完全走进我们的日常开发。这篇文章从ES6的基本类型扩展入手,逐步展开对ES6的介绍。 ECMAScript和JavaScript JavaScript是由Netscape创造的,该公司1996年11月将JavaSc...

    tommego 评论0 收藏0
  • ES6-前世今生(0)

    摘要:更新了个版本,最新正式版是语言的下一代标准,早已在年月正式发布。基本不支持移动端浏览器对的支持情况版起便可以支持的新特性。比较通用的工具方案有,,,等。 1、ECMAScript是什么? 和 JavaScript 有着怎样的关系? 1996 年 11 月,Netscape 创造了javascript并将其提交给了标准化组织 ECMA,次年,ECMA 发布 262 号标准文件(ECMA-...

    LeviDing 评论0 收藏0
  • ES6

    摘要:对象可被不定参数和默认参数完美代替。将对象纳入规范,提供了原生的对象。规定,命令和命令声明的全局变量,属于全局对象的属性命令命令命令声明的全局变量,不属于全局对象的属性。。这些函数表达式最适合用于非方法函数,并且它们不能用作构造函数。 ES6的了解 新增模板字符串(为JavaScript提供了简单的字符串插值功能)、箭头函数(操作符左边为输入的参数,而右边则是进行的操作以及返回的值In...

    snifes 评论0 收藏0
  • ES6函数扩展(二)

    摘要:主要讲解参数严格模式属性返回函数的函数名箭头函数用定义函数参数引入参数其目的是为了获取函数的多余参数数组的扩展运算符的逆向形式将参数数列转为一个数组将一个数组转为逗号分隔的参数序列有点安能辨我是雄雌的感觉参数的情况数组的扩展运算的情 主要讲解: 1. rest参数 2. 严格模式 3. name属性 -- 返回函数的函数名 4. 箭头函数 -- 用 => 定义函数 1.rest...

    岳光 评论0 收藏0
  • ES6(上中)

    摘要:正式因为它没有,所以也就不能用作构造函数。函数的最后一步是调用函数,这就叫尾调用尾递归函数调用自身,称为递归。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为的成员,然后返回该成员。 这是ES6的入门篇教程的笔记,网址:链接描述,以下内容中粗体+斜体表示大标题,粗体是小标题,还有一些重点;斜体表示对于自身,还需要下功夫学习的内容。这里面有一些自己的见解,所...

    winterdawn 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<