ES6 扩展

一、字符串扩展

第一个参数查找的值,第二个参数开始查找的位置

includes 是否包含某一个
startsWith头部存在某一个
endsWidth 尾部存在某一个

repeat 重复几次
介于0和正无穷大之间的整数 : [0, +∞)。表示在新构造的字符串中重复了多少遍原字符串

padStart头部补全
padEnd尾部补全
str.padStart(targetLength, padString)
str.padEnd(targetLength, padString)

二、数值扩展

Number.isFinite() 判断一个数是不是无穷大

全局函数 isNaN 会发生类型转换
Number.isNaN() 判断一个数是不是NaN,该方法不会强制将参数转换成数字,只有在参数是真正的数字类型,且值为 NaN 的时候才会返回 true

Number.parseInt() 转化为整数
Number.parFloat() 转化为浮点数

Number.inInteger() 判断一个数是不是整数

二、Math 扩展

Math.trunc去除一个数的小数部分,返回整数部分

Math.sign()
参数为整数,返回 +1
参数为负数,返回 -1
参数为0,返回 0
参数为-0,返回 -0
其他值,返回NaN
传入该函数的参数会被隐式转换成数字类型。

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

Math.hypot()返回所有参数的平方和的平方根
3 ** 2 + 4 ** 2 = 5 ** 2
(9 + 16) / 5

三、函数扩展

严格模式

只要函数参数使用了默认值,解构赋值,扩展运算符,那么函数内部就不能显示设定为严格模式,否则会报错,
'use strict'
声明在全局环境 和 函数环境时,变量必须先声明后使用
声明函数环境时,this不是任何对象的属性的时候,指向 undefined

四、数组扩展

Array.from将两类对象转为真正的数组
console.log(Array.from('foo')); // ["f", "o", "o"]
语法
Array.from(arrayLike[, mapFn[, thisArg]])
mapFn(可选参数)
如果指定了该参数,新数组中的每个元素会执行该回调函数。
console.log(Array.from([1, 2, 3], x => x + x)); // [2, 4, 6]

Array.of 将一类数值,转化为数组
console.log(Array.of(1,23,4))
// [1, 23, 4]

copyWithin()
数组实例的 copyWithin方法,在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员) ,然后返回当前数组。也就是说,使用这个方法,会修改当前数组。

它接受三个参数。
. target (必需) :从该位置开始替换数据。
. start(可选) :从该位置开始读取数据,默认为 0,如果为负值,表示倒数。
. end(可选) :到该位置前停止读取数据,默认等于数组长度。如果为负值,表示倒数。
这三个参数都应该是数值,如果不是,会自动转为数值。

    [1, 2, 3, 4, 5].copyWithin(0, 3)
    // [4, 5, 3, 4, 5]

Array.fill() 填充数组 /fɪl/ 填满

数组实例
keys 遍历健名
values 遍历键值取
entries遍历键值对 entries /'entrɪs/ 记录

        let arr = [1, 2, 3, 4];
        for (let key of arr.keys()) {
            console.log(key)
        }
        /*
        keys() 0  1  2  3 
        values() 1  2  3  4
        entries() 
            [0, 1]
            [1, 2]
            [2, 3]
            [3, 4]
        */ 

includes能识别NaN

五、对象扩展

Object.is() 判断两个值是否相等 Object.is(NaN, NaN) true

对象实例
keys 遍历健名
values 遍历键值取
entries遍历键值对

通过 object.keys(对象) 调用

        let obj = {
            "a": '1',
            "b": '2',
            "c": '3'
        };
        
        console.log(Object.keys(obj)); // ["a", "b", "c"]
        console.log(Object.values(obj)); // ["1", "2", "3"]
        console.log(Object.entries(obj));
            /*
                ["a", "1"]
                ["b", "2"]
                ["c", "3"]
            */ 
        for (let key in obj) {
            console.log(Object.keys(obj))
            console.log(Object.values(obj))
            console.log(Object.entries(obj))
        }

指数运算符

            **
            **=
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ES6扩展归纳 介绍ES6相比与ES5在原有对象上的扩展,包括字符串、正则、数值、函数、数组、对象等扩展,本文是阮...
    FWHeart阅读 3,793评论 0 1
  • 一.字符串的扩展 1.字符串的Unicode表示法。 2.codePointAt() 3.String...
    GXW_Lyon阅读 1,852评论 0 0
  • 字符串扩展 模板字符串 新的方法 padStart(参数1,参数2):从头部开始补全 padEnd(参数1,参数2...
    陈裔松的技术博客阅读 1,560评论 0 0
  • 数组扩展 Array.from() 将类数组对象和可遍历对象转换成数组 Array.of() 将一组值转换为数组 ...
    majun00阅读 6,842评论 0 1
  • 首先声明,我既非黛粉,也非钗粉,我只是红楼粉。 我晓得绝大多数男士们都觉得宝钗是最佳老婆,特别是与黛玉相比更是。宝...
    本杰驴阅读 1,748评论 0 1