码迷,mamicode.com
首页 > 其他好文 > 详细

es6基础-函数的新特性

时间:2019-06-24 16:51:15      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:mil   java   ret   llb   多个   post   reac   size   lock   

es6函数新特性,在原来es5函数基础上增加了新的函数扩展,包括传参,默认值,扩展运算符...

函数参数

  1. 函数参数默认值
  • 函数参数默认值的执行顺序是随意的
  • 只有未传递参数,或者参数为undefined,才是使用默认值
 function ajax( url,method=‘get‘, timeout=2000,callback={}){}
  ajax(‘/url‘) // 使用默认的请求方式method、timeout和callback
  ajax(‘/url‘, ‘post‘)  // 使用默认的请求方式timeout和callback
  ajax(‘/url‘, ‘post‘, null, () => {})

  

  1. 函数参数默认值表达式
  • 除了使用具体的默认之外,还可以使用表达式构成
  • 可以使用之前的参数作为后面参数的默认值
  • 函数参数默认值存在在暂存死区,函数表达式中的参数,没有赋值无法作为其他参数的默认值
 function getValue() {
    return 5
 }
 function add(a, b=getValue()) {
   return a + b
 }
 function add(a=b, b) {
   return a + b
 }

  

剩余参数

es6中,当传递的参数无法确定时,可以使用剩余参数表示,剩余参数是把多个独立的参数合并到一个数组中去,剩余参数表示...args,而 在es5中,多个不确定的参数使用arguments来接收

  1. 具名参数只能放在剩余参数之前,否则会报错
 function rest(a, ...args) {
    console.log(a, args) // 1 [2,3,4]
  }
  rest(1, 2, 3, 4)

  

可扩展运算符

可扩展运算符能够将具有迭代属性的数据结构,展开分割为独立的元素

  • console.log(...[1,2,3])

new target属性

能够使用new target属性来判断函数是否利用new来进行调用的

function target() {
  if (new.target !== ‘undefined‘) {console.log(‘通过new进行创建的‘)}
}

  

箭头函数

箭头函数是es6中更为简洁的书写方式,基本语法:参数 => 函数体

  1. 箭头函数的新特性
  • 没有this,super, arguments和new target的绑定
    • 箭头函数中的没有this有外围函数最近的一层非箭头函数决定
  • 不能通过new关键字调用
    • 箭头函数中没有contruct的方法,也就是构造器属性,因此不能够作为构造函数
  • 没有原型对象
    • 由于不可以通过new关键字调用构造函数,因为构造函数没有prototype这个属性
  • 不可改变this的绑定
    • 函数内部的this的值不可以改变,在函数的声明周期内始终保持一致
  • 不支持arguments对象
    • 箭头函数没arguments绑定只能通过命名函数和不定参数的形式来访问
  • 不支持重复命名参数
    • 箭头函数不支持重复命名参数
let reflect = value => value
let sum = (sum1, sum2) => num1 + num2
let sum = (sum1, sum2) => {
 return  num1 + num2
}
[空函数]
let doNothing = () =>{}
[返回对象字面量]
let getObj = (id) => ({id:id, name: name}) // 避免和函数{}混淆
  • 在经常使用的回调函数中使用{}形式,相当于使用return(map,filter),如果主函数不具有返回值就直接使用值(forEach)
  • let add = function(a, b) {
        return a+b
    }
    
    let add = (a, b) => a + b
    

      

es6基础-函数的新特性

标签:mil   java   ret   llb   多个   post   reac   size   lock   

原文地址:https://www.cnblogs.com/kuishen/p/11077505.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!