ES6函數(shù)新增了哪些擴展

參數(shù)

ES6允許為函數(shù)的參數(shù)設置默認值

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

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

函數(shù)的形參是默認聲明的,不能使用letconst再次聲明

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

參數(shù)默認值可以與解構賦值的默認值結合起來使用

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函數(shù),當參數(shù)為對象的時候才能進行解構,如果沒有提供參數(shù)的時候,變量x和y就不會生成,從而報錯,這里設置默認值避免

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

foo() // undefined 5

參數(shù)默認值應該是函數(shù)的尾參數(shù),如果不是非尾部的參數(shù)設置默認值,實際上這個參數(shù)是沒發(fā)省略的

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

f() // [1, undefined]
f(2) // [2, undefined]
f(, 1) // 報錯
f(undefined, 1) // [1, 1]
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • 一、參數(shù) ES6允許為函數(shù)的參數(shù)設置默認值 函數(shù)的形參是默認聲明的,不能使用let或const再次聲明 參數(shù)默認值...
    JerisonPaul閱讀 230評論 0 0
  • 1.函數(shù)參數(shù)的默認值 基本用法 ES6 之前,不能直接為函數(shù)的參數(shù)指定默認值,只能采用變通的方法。 functio...
    Masami_9e88閱讀 506評論 0 0
  • 前言 學習函數(shù)新增內(nèi)容,需要先了解ES6的變量解構賦值。 本文大量引用阮一峰老師的ES6手冊。 為函數(shù)的參數(shù)設置默...
    microkof閱讀 1,368評論 0 0
  • 前面的話 函數(shù)是所有編程語言的重要組成部分,在ES6出現(xiàn)前,JS的函數(shù)語法一直沒有太大的變化,從而遺留了很多問題,...
    CodeMT閱讀 837評論 0 1
  • let塊級作用域 怎么樣更好的認識let;就是現(xiàn)有的聲明方式進行比較; 1:var的聲明提升會在未初始化變量的時候...
    吳高亮閱讀 1,423評論 0 1