我在 Javascript 中看到了这样的内容:
function name (secret) {
secret = secret || {};
我在任何地方都找不到究竟是什么意思秘密=秘密|| {};
这是否意味着使用传递的参数或对象的值创建全局变量?
你什么时候使用它?什么时候没有参数通过?
我在 Javascript 中看到了这样的内容:
function name (secret) {
secret = secret || {};
我在任何地方都找不到究竟是什么意思秘密=秘密|| {};
这是否意味着使用传递的参数或对象的值创建全局变量?
你什么时候使用它?什么时候没有参数通过?
如果变量secret
是假的(以下之一):
false
0
''
(空字符串)null
undefined
NaN
..然后将其设置为{}
(一个空对象 - 它与 相同new Object()
)。
也可以这样写:
if (!secret) secret = {};
但由于它更长,大多数人更喜欢上面的。
此解决方案很有用,因为 javascript 没有默认函数参数。
例如,PHP 中的示例可能如下所示:
<?php
function foo($bar = 'default') {
echo $bar;
}
?>
在 JS 中可能是
function foo(bar) {
bar = bar || 'default';
console.log(bar);
}
foo(); //default
foo(NaN); //default
foo(undefined); //default
foo(null); //default
foo(false); //default
foo(0); //default
foo(''); //default
foo('something'); //something
foo(12); //12
foo(1.2); //1.2
如果你只想检查没有值(没有假值),那么你可以使用typeof
JS 中的函数:
function foo(bar) {
if (typeof bar == 'undefined') bar = 'default';
console.log(bar);
}
foo(); //default
foo(undefined); //default
foo(NaN); //NaN
foo(null); //null
foo(false); //false
foo(0); //0
foo(''); //(empty string)
foo('something'); //something
foo(12); //12
foo(1.2); //1.2