[英]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.