国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > JS > 正文

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

2024-05-06 16:51:40
字體:
供稿:網(wǎng)友

前言

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。

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

JavaScript函數(shù)默認(rèn)值在運(yùn)行時計算。為了更好地理解這一點(diǎ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。在運(yùn)行時調(diào)用函數(shù)foo時,將計算函數(shù)koo。調(diào)用foo函數(shù)后,你會得到如下圖所示的輸出(在這個例子中,我們使用了Ignite UI框架)。

JavaScript,函數(shù),默認(rèn)參數(shù)

重用默認(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時將得到以下輸出:

JavaScript,函數(shù),默認(rèn)參數(shù)

結(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í)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 西乌珠穆沁旗| 岳西县| 钦州市| 旬邑县| 绥阳县| 许昌县| 车致| 江油市| 神池县| 惠安县| 唐河县| 银川市| 容城县| 嘉定区| 沧州市| 湘西| 尼玛县| 长岛县| 延寿县| 佛学| 武清区| 重庆市| 平潭县| 通化县| 金塔县| 樟树市| 丽江市| 松桃| 桂林市| 五原县| 敖汉旗| 武威市| 吴忠市| 满洲里市| 会宁县| 肥城市| 沿河| 廊坊市| 霍邱县| 沂南县| 阜平县|