美文网首页
函数扩展

函数扩展

作者: 冰冰啦 | 来源:发表于2019-08-17 18:40 被阅读0次
    • 默认参数
    // 有些参数不传参的话会有默认值
    //es5-->>    if(typeof url === undefined) throw Error('url不能为空')
    // es6
    function ajax(url=new Error('url不能为空'),method='GET',dataType='json'){
      console.log(url)
      console.log(method)
      console.log(dataType)
    }
    // 不传参数会使用默认参数
    ajax() //[object Error] 'GET' 'json'
    // 传参数会使用传入的参数
    ajax('/xxx','POST','HTML') // '/xxx' 'POST' 'HTML'
    
    • 剩余操作符
    function sum(prefix,...rest){
      // rest = [1,2,3,4,5]
      let sum = 0
      //循环数组的每个元素,把它们依次传入对应的参数
      rest.forEach(item => {
        sum+= item
      })
      return prefix + (sum)
    }
    console.log(sum('$',1,2,3,4,5)) //传入5个数字
    
    • 数组常用方法之reduce(计算,把数组中的元素变成一个值)
    let arr = [1,2,3]
    // value代表当前值,item代表数组元素,index代表数组索引,origin代表原始数组
    // reduce有两个参数,第一个参数是函数,第二个函数是初始值
    let result = arr.reduce(function(value,item,index,origin){
      return value + item //返回值会赋值给下一个函数执行时的value
    },0)
    console.log(result)
    
    • 展开操作符
    let arr1 = [1,2,3]
    let arr2 = [4,5,6]
    //把数组中的元素打散,依次放入
    let arrMege = [...arr1,...arr2]
    console.log(arrMege) // [1,2,3,4,5,6]
    
    // 求一个数组中的最大值
    let arr = [1,2,3,100,5]
    let max = Math.max(...arr) //100
    
    let obj1 = {age: 1,height: '1.85'}
    let obj2 = {name: 'hzj'}
    let obj3 = {...obj1,...obj2}
    let obj4 = {}
    //浅拷贝,引用同一个地址
    console.log(obj3) //{age: 1,height: '1.85',name: 'hzj'}
    Object.assign(obj4,obj1,obj2) //{age: 1,height: '1.85',name: 'hzj'}
    
    • 对象的方法简写
    let obj = {
      getSum(a,b) {
        return a + b
      }
    }
    console.log(obj.getSum(1,2)) // 3
    
    • 箭头函数
    
    

    相关文章

      网友评论

          本文标题:函数扩展

          本文链接:https://www.haomeiwen.com/subject/vtndrqtx.html