亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

了解JavaScript函數(shù)中的默認(rèn)參數(shù)

 更新時間:2019年05月30日 15:46:50   作者:小峰  
JavaScript函數(shù)可以有默認(rèn)參數(shù)值。通過默認(rèn)函數(shù)參數(shù),你可以初始化帶有默認(rèn)值的正式參數(shù)。下面我們來一起學(xué)習(xí)一下吧

前言

JavaScript函數(shù)可以有默認(rèn)參數(shù)值。通過默認(rèn)函數(shù)參數(shù),你可以初始化帶有默認(rèn)值的正式參數(shù)。如果不初始化具有某些值的參數(shù),則該參數(shù)的默認(rèn)值為undefined。

請看下列代碼:

function foo(num1){
console.log(num1);
}
foo();

在調(diào)用函數(shù)foo時,你沒有傳遞任何參數(shù),因此變量num1的默認(rèn)值設(shè)置為undefined。但是,有時你可能需要設(shè)置默認(rèn)值而非undefined。過去,最好的策略是測試參數(shù)值undefined,然后分配一個值。所以,在上面的例子中,如果你想要將num1的默認(rèn)值設(shè)置為9,那么你可以按照以下代碼所示的方式做:

function foo(num1) {
if (num1 === undefined) {
num1 = 9;
}
console.log(num1);
}
foo();

ECMAScript 6引入了函數(shù)的默認(rèn)參數(shù)。使用ECMA 2015的默認(rèn)參數(shù)功能,你將不再需要檢查未定義的參數(shù)值。現(xiàn)在,你可以將9設(shè)置為參數(shù)本身的默認(rèn)值。你可以重寫上述函數(shù)以使用默認(rèn)值,如下所示:

function foo(num1 =9) {
console.log(num1);
}
foo();

對于函數(shù)foo,如果num1參數(shù)的值未被傳遞,那么JavaScript將設(shè)置9作為num1的默認(rèn)值。

檢查未定義的參數(shù)

即使你在調(diào)用函數(shù)時明確地傳遞undefined作為參數(shù)值,參數(shù)值也將設(shè)置為默認(rèn)值。

function foo(num1 =9) {
console.log(num1);
}
foo(undefined);

在上面的代碼中,你傳遞undefined為num1的值;因此,num1的值將被設(shè)置為默認(rèn)值9。

運行時計算默認(rèn)值

JavaScript函數(shù)默認(rèn)值在運行時計算。為了更好地理解這一點,請看以下代碼:

function foo(value = koo()) {
return value;
}
function koo() {
return "Ignite UI";
}
var a = foo();
console.log(a);

在函數(shù)foo中,參數(shù)值的默認(rèn)值設(shè)置為函數(shù)koo。在運行時調(diào)用函數(shù)foo時,將計算函數(shù)koo。調(diào)用foo函數(shù)后,你會得到如下圖所示的輸出(在這個例子中,我們使用了Ignite UI框架)。

重用默認(rèn)參數(shù)

默認(rèn)參數(shù)可供之后的默認(rèn)參數(shù)使用。請看下列代碼:

function foo(num1 = 9, num2 = num1 + 8){
console.log(num2);
}
foo();

在上面的代碼中,使用num1的默認(rèn)值來計算num2的默認(rèn)值。調(diào)用函數(shù)foo時將得到以下輸出:

結(jié)論

JavaScript默認(rèn)參數(shù)在編寫函數(shù)時非常有用。在調(diào)用函數(shù)時,如果缺少參數(shù),則默認(rèn)參數(shù)功能允許你為函數(shù)參數(shù)分配默認(rèn)值,而不是將其定義為undefined。

英文原文:Easy JavaScript Part 3: What Is a Default Parameter in a Function?

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解析URI與URL之間的區(qū)別與聯(lián)系

    解析URI與URL之間的區(qū)別與聯(lián)系

    URI就是一種資源定位機制,它是比較籠統(tǒng)地定位了資源,并不局限于客戶端和服務(wù)器,而URL就定位了網(wǎng)上的一切資源,只要是網(wǎng)上的資源,都有唯一的URL
    2013-11-11
  • javaScript arguments 對象使用介紹

    javaScript arguments 對象使用介紹

    函數(shù)體內(nèi)可以通過 arguments 對象來接收傳遞進(jìn)來的參數(shù),下面有個不錯的示例,大家可以感受下
    2013-10-10
  • 如何用JavaScript定義一個類

    如何用JavaScript定義一個類

    其實Javascript中沒有類這個定義,但是有類這個概念。很多人都寫過這樣的代碼,就是一個關(guān)鍵字 function,然后定義一個方法名,方法名后緊跟一對括號。如果你在項目中寫過這樣的代碼,那么祝賀你,你可以不費任何吹毛之力,就能一口氣讀完這篇文章了。
    2014-09-09
  • js中對象深拷貝方法總結(jié)

    js中對象深拷貝方法總結(jié)

    js深拷貝這個問題,在實際的工作和面試當(dāng)中也是經(jīng)常使用到的。
    還經(jīng)常有一些公司要求,原生手寫實現(xiàn),這篇文章主要介紹了js中對象深拷貝方法總結(jié),需要的朋友可以參考下
    2022-10-10
  • JavaScript中使用concat()方法拼接字符串的教程

    JavaScript中使用concat()方法拼接字符串的教程

    這篇文章主要介紹了JavaScript中使用concat()方法拼接字符串的教程,是JS入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-06-06
  • javascript學(xué)習(xí)筆記(十四) window對象使用介紹

    javascript學(xué)習(xí)筆記(十四) window對象使用介紹

    javascript學(xué)習(xí)筆記之window對象使用介紹,需要的朋友可以參考下
    2012-06-06
  • BAT及各大互聯(lián)網(wǎng)公司2014前端筆試面試題--JavaScript篇

    BAT及各大互聯(lián)網(wǎng)公司2014前端筆試面試題--JavaScript篇

    很多面試題是我自己面試BAT親身經(jīng)歷碰到的。整理分享出來希望更多的前端er共同進(jìn)步吧,不僅適用于求職者,對于鞏固復(fù)習(xí)js更是大有裨益
    2014-10-10
  • javascript中常用編程知識

    javascript中常用編程知識

    javascript雖然只是一個腳本語言,但是它完全也是一個編程語言需要我們來學(xué)習(xí)一下,下面是轉(zhuǎn)載的篇關(guān)于javascript中常用的編程知識
    2013-04-04
  • Javascript數(shù)組循環(huán)遍歷之forEach詳解

    Javascript數(shù)組循環(huán)遍歷之forEach詳解

    本篇文章主要介紹了Javascript 數(shù)組循環(huán)遍歷之forEach詳解,對學(xué)習(xí)forEach有很好的幫助,有需要的可以了解一下。
    2016-11-11
  • JS兩種定義方式的區(qū)別、內(nèi)部原理

    JS兩種定義方式的區(qū)別、內(nèi)部原理

    方式1 是典型的函數(shù)聲明(Function declarations)。方式2 是函數(shù)表達(dá)式(Function expressions),未必所有人都知道其區(qū)別,內(nèi)部原理
    2013-11-11

最新評論