• ES6扩展


    方法说明
    Number.isFinite() 判断一个值是不是有限的
    Number.isNan() 判断一个值是不是NaN
    Number() 类型转换
    Numbar.parseInt() 将字符串转化为整数
    Numbar.parseFloat() 将字符串转化为小数
    Numbar.isInteger() 判断一个数是不是一个整数
    Number.isSafeInteger() 判断是不是一个安全的数
    Math.cbrt() 用于计算一个数的立方根
    Math.trunc() 用于去除一个数的小数部分,返回整数
     1 1、如果参数类型不是数值,Number.isFinite一律返回false
     2 2、如果参数类型不是NaN,Number.isNaN一律返回false
     3 注:es5含有隐式转换,es6不含有隐式转换
     4 
     5 // es5
     6 isFinite(25) // true
     7 isFinite("25") // true
     8 // es6
     9 Number.isFinite(25) // true
    10 Number.isFinite("25") // false
    11 
    12 // es5
    13 isNaN(NaN) // true
    14 isNaN("NaN") // true
    15 // es6
    16 Number.isNaN(NaN) // true
    17 Number.isNaN("NaN") // false
    18 Number.isNaN(1) // false
    19 
    20 3、Number.parseInt(), Number.parseFloat()
    21 // ES5的写法
    22 parseInt('12.34') // 12
    23 parseFloat('123.45#') // 123.45
    24 
    25 // ES6的写法
    26 Number.parseInt('12.34') // 12
    27 Number.parseFloat('123.45#') // 123.45
    28 
    29 这样做的目的,是逐步减少全局性方法,使得语言逐步模块化。
    30 Number.parseInt === parseInt // true
    31 Number.parseFloat === parseFloat // true
    32 
    33 4、Number.isInteger()用来判断一个数值是否为整数
    34 Number.isInteger(25) // true
    35 Number.isInteger(25.1) // false
    36 Number.isInteger(25.0) // true
    37 // 如果参数不是数值,Number.isInteger返回false
    38 Number.isInteger() // false
    39 Number.isInteger(null) // false
    40 Number.isInteger('15') // false
    41 Number.isInteger(true) // false
    42 
    43 5、Number.isSafeInteger()则是用来判断一个整数是否落在这个范围之内
    44 Number.isSafeInteger('a') // false
    45 Number.isSafeInteger(null) // false
    46 Number.isSafeInteger(NaN) // false
    47 Number.isSafeInteger(Infinity) // false
    48 Number.isSafeInteger(-Infinity) // false
    49 
    50 Number.isSafeInteger(3) // true
    51 Number.isSafeInteger(1.2) // false
    52 Number.isSafeInteger(9007199254740990) // true
    53 Number.isSafeInteger(9007199254740992) // false
    54 
    55 Number.isSafeInteger(Number.MIN_SAFE_INTEGER - 1) // false
    56 Number.isSafeInteger(Number.MIN_SAFE_INTEGER) // true
    57 Number.isSafeInteger(Number.MAX_SAFE_INTEGER) // true
    58 Number.isSafeInteger(Number.MAX_SAFE_INTEGER + 1) // false
    59 
    60 
    61 6、Math.trunc方法用于去除一个数的小数部分,返回整数部分
    62 Math.trunc(4.1) // 4
    63 Math.trunc(4.9) // 4
    64 Math.trunc(-4.1) // -4
    65 Math.trunc(-4.9) // -4
    66 Math.trunc(-0.1234) // -0
    67 
    68 // 对于非数值,Math.trunc内部使用Number方法将其先转为数值
    69 Math.trunc('123.456') // 123
    70 Math.trunc(true) //1
    71 Math.trunc(false) // 0
    72 Math.trunc(null) // 0
    73 
    74 // 对于空值和无法截取整数的值,返回NaN
    75 Math.trunc(NaN);      // NaN
    76 Math.trunc('foo');    // NaN
    77 Math.trunc();         // NaN
    78 Math.trunc(undefined) // NaN
    79 
    80 
    81 7、Math.cbrt方法用于计算一个数的立方根
    82 Math.cbrt(-1) // -1
    83 Math.cbrt(0)  // 0
    84 Math.cbrt(1)  // 1
    85 Math.cbrt(2)  // 1.2599210498948734
    86 对于非数值,Math.cbrt方法内部也是先使用Number方法将其转为数值
    87 Math.cbrt('8') // 2
    88 Math.cbrt('hello') // NaN
    View Code

    1、设置默认值

    • 回调里面使用箭头函数,this指向上级对象
    • 回调里面使用function,this指向当前对象
    •  1  // es5
       2  let fun = function(val){
       3     var val = val || 666;
       4     return val
       5  }
       6  console.log(fun())
       7   
       8  
       9  // es6
      10  let fun = (val=666) => {
      11      return val;
      12  }
      13  // 简写
      14  let fun = (val=666) => val;
      15  
      16  // 函数默认值的注意事项
      17  // 定义形参默认值,需要注意:先声明后使用,遵循声明变量的规则
      18  let fun = (val,val) => { // 报错
      19     console.log(val)
      20  }
      21  let fun = (val2 = 2,val1 = val2) => { 
      22     console.log(val1)
      23  }
      24  fun();
      25  
      26  
      27  // 设置形参后,函数内部的私有变量如果用let命令来声明变量,不得重复定义
      28  let fun = (val) => {  // 报错
      29      let val = 666;
      30      console.log(val)
      31  }
      32  fun(555);
      33  
      34  
      35  // 获取函数所有形参
      36  // es5
      37  let fun = function(){
      38     console.log(arguments); // 类数组
      39     [...arguments].forEach(item=>{ // 通过...把它转为一个数组
      40         console.log(item);
      41     })
      42  }
      43  fun(1,2,3,4,5)
      44  
      45  // es6
      46  // 箭头函数没有arguments对象
      47  // reset 参数返回一个实参的数组的集合
      48  let fun = (...reset) => {
      49      console.log(reset)
      50      reset.forEach(item=>{ 
      51         console.log(item);
      52     })
      53  }
      54  fun(1,2,3,4,5,6)
      55  

    2、扩展运算符 ...

    • 可以展开一个数组

    #3、伪逗号

    • es2017允许你去写一个逗号

     1 let obj = { 2 name:'zs', 3 age:18, 4 } 

    4、数组的扩展

     1 1、扩展运算符
     2 // 将数组转化为数组项的参数系列
     3 let arr1 = [1,2,3,4];
     4 let arr2 = [...arr1];
     5 
     6 
     7 2. Array.from(arr)
     8 // 将类似数组、可以遍历对象(包括set map解构类型的数据) 转为数组
     9 ...arr 展开数组的每一项   [...arr] 转为一个数组
    10 
    11 
    12 3、数组的空值/空位
    13 let arr = new Array(5);
    14 // 长度为5   a[0]为undefined
    15 
    16 
    17 4、Array.of()  用来将一组参数序列转为数组,可以用来代替new Array()
    18 let arr = Array.of(1,2,3,4,5);
    19 console.log(arr)
    20 // 不传参为空数组
    21 
    22 
    23 5、Array.copyWithin(target,start,end)
    24 用数组中的一些项,替换数组中的值
    25 // target(必须): 要替换项的下标
    26 // start(可选): 替换的起始下标
    27 // end(可选): 替换的结束下标
    28 let arr = [1, 4, 2, 5, 3, 2];
    29 console.log(arr.copyWithin(0, 4))
    30 // [ 3, 2, 2, 5, 3, 2 ]
    31 
    32 
    33 6、Array.find()   返回满足条件的第一个项
    34 let arr = [2,8,4,3];
    35 let res = arr.find((item,index,array)=>{
    36     return item>2;
    37 })
    38 console.log(res) // 8
    39 
    40 
    41 7、Array.findIndex()   返回满足条件的第一个项下标
    42 let arr = [2,8,4,3];
    43 let res = arr.findIndex((item,index,array)=>{
    44     return item==2;
    45 })
    46 console.log(res) // 0
    47 
    48 
    49 8、Array.fill()  给数组填充相同的值
    50 let arr = new Array(5);
    51 arr.fill("mmd",2,3) 
    52 // 2 是开始下标
    53 // 3 是结束下标
    54 
    55 
    56 9、去重 结合set实现数组去重
    57 let arr = [1,2,3,4,5,2,1,3,4,4];
    58 let res = new Set(arr);
    59 console.log(res) // 转为一个类数组
    60 let result = Array.from(res); // 转数组

    5、this指向

    1 构造器 === 构造函数
    2 1、箭头函数不是一个构造器,不可以实例化
    3 let fun = () => {
    4     
    5 }
    6 new fun()  // 报错
    7 
    8 2、::  左边是一个对象  右边是一个方法

    6、对象扩展

    1 console.log(Object.is(123,'123')) // false
    2 
    3 
    4 1、Object.assign()  默认是浅拷贝
    5  // 3个参数是深度拷贝  Object.assign({},obj1,obj2)
    6  // 2个参数是浅拷贝 Object.assign(obj1,obj2)
    7  
    8  有{}会生成新串   没有会替换原字符串
  • 相关阅读:
    Linq to OBJECT延时标准查询操作符
    LINQ to XML
    动态Linq(结合反射)
    HDU 1242 dFS 找目标最短路
    HDu1241 DFS搜索
    hdu 1224 最长路
    BOJ 2773 第K个与m互质的数
    ZOJ 2562 反素数
    2016 ccpc 杭州赛区的总结
    bfs UESTC 381 Knight and Rook
  • 原文地址:https://www.cnblogs.com/mtl-key/p/13036169.html
Copyright © 2020-2023  润新知