[英]Function with optional parameter not registering passed value
我有這個函數有一個可選參數。 問題是,當我傳遞一個參數時,它的行為就像我從未傳遞過它一樣。
這是我的代碼:
function sideA(i){
// i is an optional argument.
i = i || 'random';
console.log(i);
}
sideA(0);
在這里,控制台將始終顯示“ random
”。 不確定是什么。 有任何想法嗎?
0,"",undefined,null
視為false
。
在這一行
i = i || 'random';
如果我是真的那么i的值將被分配,否則將被使用
試試這樣
i= typeof i === "undefined" ? "random" : i
像這樣打電話
sideA(0)
sideA() // pass nothing to get random
0
是假的。
我想你想檢查它是否為null
或undefined
:
function sideA(i) { // i is an optional argument. i = (i === null || i === undefined ? 'random' : i); console.log(i); } sideA(0);
或者,您可以檢查typeof
以查看它是否為數字:
function sideA(i) { // i is an optional argument. i = (typeof i === 'number' ? i : 'random'); console.log(i); } sideA(0);
文檔:
嘗試明確地測試i
是否undefined
。 如果i
沒有undefined
,請返回i
,否則返回'random'
function sideA(i) { // i is an optional argument. // if `i` _not_ `undefined` , `i` = `i` , // else , `i` = `'random'` i = i !== undefined ? i : 'random'; console.log(i); } sideA(0);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.