ES6函数新增了哪些扩展

参数

ES6允许为函数的参数设置默认值

function log(x,y = 'World'){
  console.log(x,y)
}

log('Hello') // Hello World
log('Hello','China') // Hello China
log('Hello','') // Hello

函数的形参是默认声明的,不能使用letconst再次声明

function foo(x = 5){
 let x = 1;//error
 const x = 2;//error
}

参数默认值可以与解构赋值的默认值结合起来使用

function foo({x, y = 5}) {
  console.log(x, y);
}

foo({}) // undefined 5
foo({x: 1}) // 1 5
foo({x: 1, y: 2}) // 1 2
foo() // TypeError: Cannot read property 'x' of undefined

上面的foo函数,当参数为对象的时候才能进行解构,如果没有提供参数的时候,变量x和y就不会生成,从而报错,这里设置默认值避免

function foo({x, y = 5} = {}) {
  console.log(x, y);
}

foo() // undefined 5

参数默认值应该是函数的尾参数,如果不是非尾部的参数设置默认值,实际上这个参数是没发省略的

function f(x = 1, y) {
  return [x, y];
}

f() // [1, undefined]
f(2) // [2, undefined]
f(, 1) // 报错
f(undefined, 1) // [1, 1]
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、参数 ES6允许为函数的参数设置默认值 函数的形参是默认声明的,不能使用let或const再次声明 参数默认值...
    JerisonPaul阅读 230评论 0 0
  • 1.函数参数的默认值 基本用法 ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法。 functio...
    Masami_9e88阅读 511评论 0 0
  • 前言 学习函数新增内容,需要先了解ES6的变量解构赋值。 本文大量引用阮一峰老师的ES6手册。 为函数的参数设置默...
    microkof阅读 1,369评论 0 0
  • 前面的话 函数是所有编程语言的重要组成部分,在ES6出现前,JS的函数语法一直没有太大的变化,从而遗留了很多问题,...
    CodeMT阅读 837评论 0 1
  • let块级作用域 怎么样更好的认识let;就是现有的声明方式进行比较; 1:var的声明提升会在未初始化变量的时候...
    吴高亮阅读 1,424评论 0 1