摘要:這個功能比較簡單,但對于后端開發(fā)來說,會覺得會奇怪,參數(shù)默認值還需要特殊支持么答案是肯定的,在中參數(shù)是不可以指定默認值的,統(tǒng)一默認為如下代碼呵呵呵呵哈哈哈哈沒錯,之前,我們只能這么來操作參數(shù)默認值,但是在中,就不再需要啦,就和普通的后端語言
這個功能比較簡單,但對于后端開發(fā)來說,會覺得會奇怪,參數(shù)默認值還需要特殊支持么?答案是肯定的,在ES5中, 參數(shù)是不可以指定默認值的,統(tǒng)一默認為 undefined, 如下代碼:
function say(word) { word = word || "呵呵!"; console.log(word); } console.log(say()); //呵呵! console.log(say("哈哈!")); //哈哈!
沒錯,ES2015之前,我們只能這么來操作參數(shù)默認值,但是在ES2015中,就不再需要啦,就和普通的后端語言一樣:
function say(word = "呵呵!") { console.log(word); } console.log(say()); //呵呵! console.log(say("哈哈!")); //哈哈!
是不是就這么結(jié)束啦?當然不是,回到官方手冊上,我們看到的是:
Callee-evaluated default parameter values.
參數(shù)默認值是被計算過的,意味著,我們可以寫表達式,這個也是其他語言做不到的,看代碼:
function defaultWord() { return "呵呵!"; } function say(word = defaultWord()) { console.log(word); } console.log(say()); //呵呵! console.log(say("哈哈!")); //哈哈!
什么叫evaluated, 其實也就是在應用默認值的時候,相當于JavaScript編譯器使用eval計算一下,出來的結(jié)果當作默認值:
function say(word = eval(""呵呵!"")) { console.log(word); }
和
function say(word = eval("defaultWord()")) { console.log(word); }
還有:
Default parameters are available to later default parameters.
有默認值的參數(shù),對其后面的參數(shù)可用,啥意思?看代碼:
function renderScore(name, score = 100, description = (score === 100 ? "(好棒)" : "")) { console.log(name + "得分: " + score + description); } renderScore("小明"); renderScore("小花", 80); renderScore("小靜", 100); renderScore("小強", 90, "(加油哦!)");
結(jié)果為:
> 小明得分: 100(好棒) > 小花得分: 80 > 小靜得分: 100(好棒) > 小強得分: 90(加油哦!)
這樣,大家都應該清楚了吧?
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/83729.html
EcmaScript 其實是一種語言規(guī)范,常見的 JavaScript, ActionScript 等都是其具體實現(xiàn),平時使用中一般可以將其和Javascript對等稱呼,本系列教程主要講述 EcmaScript2015(ES6) 為JavaScript帶來的新的特性,并初步掌握如何利用其進行開發(fā)。 本系列面向有一定基礎知識的ES5使用者,不適合初學者。 先來看兩段代碼: Human.js exp...
摘要:就是的逆操作,看代碼計算一個數(shù)組大于三個元素中前三個元素的和以及所有元素的和。前三個值為總和為結(jié)果前三個值為總和為前三個值為總和為 ES2015為我們帶來了一個新的操作符: ..., 用于定義函數(shù)參數(shù)的地方,稱之為 Rest 用于調(diào)用函數(shù)的地方,稱之為 Spread 我們一個個來分析: Rest 寫程序的時候或多或少都會有,傳入不定參數(shù)給一個函數(shù)的需求,如,給一個班級加入學生名單,...
摘要:用過的同學肯定見過類似下面的代碼這就是為帶來的另一個新的語法解構(gòu)賦值。解構(gòu)賦值是用來讓我們從數(shù)組或者對象中提取數(shù)據(jù)賦值給不同的變量。解構(gòu)賦值操作不會拋錯,如果沒有找到,將會用賦值過去。 用過ReactNative的同學肯定見過類似下面的代碼: import { Text, View } from react-native; 這就是ES2015為JavaScript帶來的另一個新的語法:...
摘要:前端日報精選如何在非項目中使用知乎專欄編碼規(guī)范最常被遺忘的性能優(yōu)化瀏覽器緩存?zhèn)€人文章譯統(tǒng)一樣式語言掘金新的開發(fā)者提及最多的個視頻眾成翻譯中文第期在中使用譯統(tǒng)一樣式語言掘金前端現(xiàn)狀答題救不了前端新人相學長懟前端歲以 2017-06-29 前端日報 精選 如何在非 React 項目中使用 Redux - 知乎專欄Javascript編碼規(guī)范 - Clearlove - SegmentFau...
閱讀 913·2023-04-26 00:13
閱讀 3133·2021-11-23 10:08
閱讀 2588·2021-09-01 10:41
閱讀 2190·2021-08-27 16:25
閱讀 4331·2021-07-30 15:14
閱讀 2468·2019-08-30 15:54
閱讀 926·2019-08-29 16:22
閱讀 2817·2019-08-26 12:13