• es6新增扩展


    一  字符串扩展

            let str='wyyw';

    1.  srt.startsWith('w')      true  以w开头
    2.  srt.endsWith('w')      true 以w结尾
    3.  str.includes('e')    false  e是否存在  == indexOf
    4. str.repeat(2)    wyywwyyw  重复次数
    5. str.padStart(5,'2') 2wyyw  在开头补齐长度5
    6. str.padEnd(5,'2')   wyyw2 在结尾补齐长度5
    7. 模板字符串   ``
      1. 内容可换行
      2. 可用${变量}
    1. str.trimStart()    消除字符串头部的空格
    2. str.trimEnd()    消除字符串尾部的空格

     新增的symbol 基本数据类型(暂时用不到)

    特点:1自己不认识自己,与自己不相等 

               2无法被重建

              3不能进行计算

        1创建

    const s1 = Symbol('debug');
    const s2 = Symbol('xxyy');
    const str = 'debug';
    console.log(s1 === str); // false

    console.log(s1 === s2); // false
    2充当对象的私有属性
    const obj = {};
    const sym = Symbol();
    obj[sym] = 'foo';
    obj.bar = 'bar';
    console.log(obj); // { bar: 'bar' }
    console.log(sym in obj); // true
    console.log(obj[sym]); // foo
    console.log(Object.keys(obj)); // ['bar']
     

    二  数组扩展

    1. 数组copy

    例子:const a=[1,2,3]

    const b=[...a]

    b=[1,2,3]

            2 数组拼接合并 

    例子:const a=[1,2,3]

              const  b=[1,2,3]

             const  c=[...a,...b]

            c=[1,2,3,4,5,6]

    3数组打印

     console.log(...c)//1,2,3,4,5,6

      4将伪数组变成真数组

      1)将用js获取到得dom类数组转化成真正得数组

      1)Array.from()

      5遍历 

            let a=['a', 'b']

    for (let index of a.keys()) {
      console.log(index);//0 1
    }
    for (let elem of a.values()) {
      console.log(elem);//'a','b'
    }
    for (let [index, elem] of a.entries()) {
      console.log(index, elem);// 0,'a'    1,'b'
    }

    三函数扩展

             function  getData(a,b,...c)

    1. 参数不确定 show(a,b,..c)
    2. ...c=剩余所有的参数
    3. ...c 必须放在最后一位

    四 数值扩展

    • Math
    1. Math.trunc(4.1)  4  直接去掉小数部分(
    2. 可接受数字字符串,内部会自动转化为number)
    3. Math.sign(x)   x>0 =>1     x<0 => -1       x=0  => 0 判断x是正负数和0
    • Number
    1. Number.isNaN(NaN)   true
    2. Number.parseInt('3.4')   3.4  可接受数字字符串,内部会自动转化为number)
    3. Number.parseFloat('3.43')   3.43 可接受数字字符串,内部会自动转化为number)
    4. Number.isInteger(23.23)  false  是否是整数  
    5. Number.EPSILON    最小精确单位   用途:浮点计算精度丢失

                例子:Math.abs(4.2-4.2)<Number.EPSILON===true   两者相等

    五 对象扩展

    1. 2个对象值是否完全相等

              Object.is(obj1,obj2)

             2对象合并

             const  a=Object.assign(obj1,obj2)  有则覆盖  无则合并 

       3遍历:Object.keys(obj)  注意写法

        

    let obj = { a: 1, b: 2, c: 3 };

    for (let key of Object.keys(obj)) {
    console.log(key); // 'a', 'b', 'c'
    }

    for (let value of Object.values(obj)) {
    console.log(value); //1,2,3
    }

    for (let [key ,value]of Object.entries(obj)) {
    console.log(key+':',value); // a:1,b:2,c:3
    }

    六 JSON

    1.  将字符串转化为JSON       JSON.parse()

      注意::str = '{"name":"小明","age":18}'; 属性name和age都用双引号引住

          2 将JSON转化为  字符串     JSON.stringify()

    //判断数组是否包含某对象
    let data = [
        {name:'echo'},
        {name:'听风是风'},
        {name:'天子笑'},
        ],
        val = {name:'天子笑'};
    JSON.stringify(data).indexOf(JSON.stringify(val)) !== -1;//true
    
    //判断两数组/对象是否相等
    let a = [1,2,3],
        b = [1,2,3];
    JSON.stringify(a) === JSON.stringify(b);//true
    //深拷贝
    function deepClone(data) {
        let _data = JSON.stringify(data),
            dataClone = JSON.parse(_data);
        return dataClone;
    };
    //测试
    let arr = [1,2,3],
        _arr = deepClone(arr);
    arr[0] = 2;
    console.log(arr,_arr)//[2,2,3]  [1,2,3]

       

  • 相关阅读:
    Codeforces Round #579 (Div. 3)
    2019牛客暑期多校训练营(第一场)ABBA
    Comet OJ
    Codeforces Round #562 (Div. 2)
    Codeforces Round #569 (Div. 2)
    寒假集训总结
    线段树做题总结
    Git学习
    unity开发vuforia血的教训
    (学习13)最短圆排列问题
  • 原文地址:https://www.cnblogs.com/fanjiawen/p/13473552.html
Copyright © 2020-2023  润新知