Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有可选参数的函数未注册传递的值_Javascript_Jquery - Fatal编程技术网

Javascript 带有可选参数的函数未注册传递的值

Javascript 带有可选参数的函数未注册传递的值,javascript,jquery,Javascript,Jquery,这个函数有一个可选参数。问题是,当我传递一个参数时,它的行为就好像我从未传递过它一样 这是我的密码: function sideA(i){ // i is an optional argument. i = i || 'random'; console.log(i); } sideA(0); 在这里,控制台将始终显示“random”。不知道怎么了。有什么想法吗?0,”,未定义,null视为false 在这一行 i = i || 'random'; 如果i为tru

这个函数有一个可选参数。问题是,当我传递一个参数时,它的行为就好像我从未传递过它一样

这是我的密码:

function sideA(i){

    // i is an optional argument.
    i = i || 'random';

    console.log(i);
}

sideA(0);
在这里,控制台将始终显示“
random
”。不知道怎么了。有什么想法吗?

0,”,未定义,null
视为
false

在这一行

i = i || 'random';
如果i为true,则将指定i的值,否则将使用random

像这样试试

 i= typeof i ===  "undefined" ? "random" : i
sideA(0) 
sideA() // pass nothing to get random
像这样打电话

 i= typeof i ===  "undefined" ? "random" : i
sideA(0) 
sideA() // pass nothing to get random

0
是错误的

我想您应该检查它是
空的
还是
未定义的

函数sideA(i){
//i是一个可选参数。
i=(i==null | | i==undefined?'random':i);
控制台日志(i);
}

sideA(0)这是因为
0
是一个,因此将返回第二个操作数

如果您想使用传递的值,如果有,甚至是未定义的,但如果没有使用像
sideA()这样的参数,则希望使用默认值然后

i = arguments.length ? i : 'random';

尝试显式测试
i
是否为
未定义的
。如果
i
未定义
,则返回
i
,否则返回
“随机”

函数sideA(i){
//i是一个可选参数。
//如果'i`\u不是`未定义','i`='i`,
//否则,`i`=`random'`
i=i!==未定义?i:'随机';
控制台日志(i);
}

sideA(0)如果你调用函数没有变量是正确的对不起。。。在那里传递了参数。。。还是“随机”出现我不明白你想要什么。。你能解释得更清楚一点吗?问题是你正在传递0,这是错误的。现在,控制台应该说0,但是,无论是否发送了参数,它总是随机显示。那么如何传递0呢?我绝对需要通过0那么如何通过0呢?我绝对需要通过0那么如何通过0呢?我绝对需要感谢你的帮助。。。阿尼克赢了你。