成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

js函數(shù)的默認(rèn)參數(shù)(default parameter)

XanaHopper / 2266人閱讀

摘要:函數(shù)的默認(rèn)參數(shù)函數(shù)參數(shù)的默認(rèn)值都是,里,不支持直接在形參里寫默認(rèn)值。所以,要設(shè)置默認(rèn)值,就要檢測參數(shù)是否為,按需求賦值。

js函數(shù)的默認(rèn)參數(shù)(default parameter)

js函數(shù)參數(shù)的默認(rèn)值都是undefined, ES5里,不支持直接在形參里寫默認(rèn)值。所以,要設(shè)置默認(rèn)值,就要檢測參數(shù)是否為undefined,按需求賦值。

function multiply(a, b) {
  b = typeof b !== "undefined" ?  b : 1;

  return a*b;
}

multiply(5); // 5
multiply(5, 0); // 0

上面是MDN的相關(guān)例子,是比較嚴(yán)謹(jǐn)?shù)膶懛ā2煌扑]下面的寫法:

function multiply(a, b) {
  b = b ?  b : 1;  // b = b || 1;

  return a*b;
}

multiply(5); // 5
multiply(5, 0); // 5

因?yàn)?,在布爾類型環(huán)境中undefined, 0, "", NaN, null會(huì)被轉(zhuǎn)換成 false。

進(jìn)一步,還可以先利用arguments對(duì)象,再設(shè)置默認(rèn)值 :

function multiply(a) {
  var b = typeof arguments[1] !== "undefined" ? arguments[1] : 1;

  return a*b;
}

 multiply(5); // 5
 multiply(5, 0); // 0

ES6里已經(jīng)支持默認(rèn)參數(shù)了,直接寫就好啦:

function multiply(a, b = 1) {
  return a*b;
}

multiply(5); // 5

ES6還支持解構(gòu)賦值來設(shè)置默認(rèn)參數(shù):

jQuery.ajax = function (url, {
  async = true,
  beforeSend = function () {},
  cache = true,
  complete = function () {},
  crossDomain = false,
  global = true,
   // ... more config
}) {
   // ... do stuff
};

更詳細(xì)的介紹,請(qǐng)看阮一峰的ECMAScript 6 入門的函數(shù)的拓展。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/82728.html

相關(guān)文章

  • [譯]Loadtest庫做負(fù)載測試

    摘要:在選定的或者上進(jìn)行負(fù)載測試,允許在你自己的測試?yán)镙p松集成。使用提供的非常容易整合到你的包里進(jìn)行編程負(fù)載測試。在部署新版本軟件之前,使運(yùn)行負(fù)載測試成為系統(tǒng)測試的一部分變得非常容易。 前言 因?yàn)樽罱鼘W(xué)習(xí)需要用到一些測試庫測試性能,但是工具又太復(fù)雜不好用,恰好發(fā)現(xiàn)有這么一個(gè)庫用法輸出都很近似,可惜沒有找到有中文版或者用法筆記,所以只好耐心一點(diǎn)一點(diǎn)翻譯出來。因?yàn)槲业挠⑽乃胶芤话?,而這種技術(shù)博...

    asoren 評(píng)論0 收藏0
  • Laravel核心——Ioc服務(wù)容器源碼解析(服務(wù)器解析)

    摘要:而函數(shù)作用是加載延遲服務(wù),與容器解析關(guān)系不大,我們放在以后再說。在構(gòu)造之前,服務(wù)容器會(huì)先把放入中,繼而再去解析。利用服務(wù)容器解析依賴的參數(shù)。 make解析 首先歡迎關(guān)注我的博客: www.leoyang90.cn 服務(wù)容器對(duì)對(duì)象的自動(dòng)解析是服務(wù)容器的核心功能,make 函數(shù)、build 函數(shù)是實(shí)例化對(duì)象重要的核心,先大致看一下代碼: public function make($abst...

    hearaway 評(píng)論0 收藏0
  • 騰訊 AlloyTeam 移動(dòng) Web 裁剪組件 AlloyCrop 正式開源

    摘要:兼容性如何支持以及的設(shè)備的瀏覽器便可運(yùn)行不一一列舉一共不到行為什么體積這么小騰訊手內(nèi)大量的都會(huì)去不斷地從各個(gè)維度進(jìn)行性能優(yōu)化。騰訊內(nèi)部有哪些項(xiàng)目在用目前主要是興趣部落群等業(yè)務(wù)在用,剛剛開源出來,只要有裁剪圖片的地方都會(huì)用到。 傳送門 Github地址:https://github.com/AlloyTeam/AlloyFinger/tree/master/alloy_crop 在線De...

    yexiaobai 評(píng)論0 收藏0
  • ES6 中模式匹配和默認(rèn)參數(shù)

    摘要:中,引入了其他很多語言都具備的模式匹配和默認(rèn)參數(shù)語法糖,使得代碼簡潔了不少。模式匹配中需要注意的觸發(fā)默認(rèn)值如下所示右側(cè)的元素會(huì)觸發(fā)左側(cè)的默認(rèn)值。 ES6 中,引入了其他很多語言都具備的模式匹配和默認(rèn)參數(shù)語法糖,使得代碼簡潔了不少。但是使用的時(shí)候還是有些細(xì)節(jié)需要注意。 模式匹配原理 模式匹配的種類 具體來說,有三種類型的模式匹配: 直接賦值 let a = 1; 對(duì)象模式 let...

    Loong_T 評(píng)論0 收藏0
  • ES6對(duì)函數(shù)改動(dòng)

    摘要:改動(dòng)函數(shù)的改變不算太大,都是一些其他語言早就有的功能,而一直比較欠缺的,比如函數(shù)參數(shù)默認(rèn)值,任意參數(shù)的表示法,最大的變化應(yīng)該是支持箭頭函數(shù)其他語言稱之為表達(dá)式,一種對(duì)匿名函數(shù)的一種簡寫方式,以下來探討一下函數(shù)在中的一些改變默認(rèn)參數(shù)任意參數(shù)操 ES6 functions改動(dòng) ????ES6函數(shù)的改變不算太大,都是一些其他語言早就有的功能,而Javascript一直比較欠缺的,比如函數(shù)參數(shù)...

    kk_miles 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<