es6的新方法

在es5的基础上,es6添加了一些新的方法具体如下:

1、数值方法

 

1、Number.isNaN() ;   本来是在window下的  判断是否是非数字的方法,转变到Number下后,效果也是一样,
   不过如果是字符串的话  会先转化成number类型 也就是转换成了NaN,再判断,当然返回的就是false喽!
  console.log(Number.isNaN(2));  //fasle
  console.log(Number.isNaN('sdf')); //false
  
  2、两个Math方法
        1、Math.trunc(); //取整
          console.log(Math.trunc(5.32)); //5
        2、Math.sign(); //判断正数负数和零
         console.log(Math.sign(2.6)); //1
         console.log(Math.sign(-2.6));//-1
         console.log(Math.sign(0)); //0

2、数组方法

 1、Array.of(),将任意一组值转换成数组
      var name = 'guojunqiang';
      console.log(Array.of(name)); //["guojunqiang"]
  
  2、Array.from()  类数组(伪数组)转换成数组
  
      var btn = document.getElementsByTagName('button');
      console.log(btn);  //HTMLCollection(5) [button, button, button, button, button]
      console.log(Array.from(btn));  //(5) [button, button, button, button, button]

  3、find()  查找符合条件的第一个元素,函数返回  未找到返回undefined
     var arr = [1, 2, 3, 4, 5]
      console.log(arr.find(function (value) {
          // return value >3;
          return value > 8;  //undefined

      }));

  4、findIndex()  符合条件的第一个元素的位置  (索引位置) 如果未找到则返回-1
      var arr = [1, 2, 3, 4, 5]
      console.log(arr.findIndex(function (value) {
          // return value > 6;  //-1
          return value > 3;  //3

      }));
  5、fill() 填充  数组中的每一项或者某一项    后两个参数  是索引开始的位置和索引结束的位置,不包含结束的位置,包含开始的位置
            var arr1 = [1, 2, 3, 4, 5];
            console.log(arr1.fill('w'));  //(5) ["w", "w", "w", "w", "w"]
            console.log(arr1.fill('e', 1, 3));  //["w", "e", "e", "w", "w"]

  6、entries() 遍历器返回键值对

         for (let [k, v] of ['a', 'b', 'c'].entries()) {
                console.log(k, v);
                 //   0 "a"
                //   1 "b"
                //   2 "c"
      }
  
    **key()**

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

    ** values()**

      for (let value of ['a', 'b', 'c'].values()) {
       console.log(value);
          //   a
          //   b
          //   c  
      }

3、对象方法

1、属性名的更新,自定义变量名的改变

      var f = 'first';
      var n = 'Name';
      var s = 'say';
      var h = 'Hello';

      var person = {
          [f + n]: '郭俊强',
          [s + h]() {
              console.log('你好吗?我很好!');
          }
      }
      console.log(person.firstName);//郭俊强
      person.sayHello();//你好吗?我很好!
  
  2、Object.is()    判断 === 

         var str1 = '123';
         var str2 = 123;
         var res = Object.is(str1, str2)
         console.log(res);  //false
  3、Object.assign()  将源对象的属性赋值给目标对象
        var target = { 'name': 'zs' }
        var source = { 'age': 18, "sex": '男' }
        console.log(Object.assign(target, source)); //{name: "zs", age: 18, sex: "男"}

  4、Object.getPrototypeOf()  //获取对象原型属性
     Object.setPrototypeOf() //设置对象原型属性
  
  function Person() { }
  Person.prototype = {
        say() {
              console.log('我是old的方法');
          }
  }
  let p1 = new Person();
  p1.say();
  console.log(Object.getPrototypeOf(p1));  //{say: ƒ}

  Object.setPrototypeOf(p1, {
        say() {
              console.log('我是新的方法');
        }
  });
  p1.say(); //我是新的方法

 

posted on 2020-09-01 21:09  cx125  阅读(211)  评论(0编辑  收藏  举报

导航