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