我在Javascript中看到过类似的内容:
function name (secret) {
secret = secret || {};
Run Code Online (Sandbox Code Playgroud)
我无法找到任何意味着什么秘密=秘密|| {};
这是否意味着创建具有传递参数或对象值的全局变量?
你什么时候使用它?什么时候没有参数传递?
h2o*_*ooo 26
如果变量secret是假的(以下之一):
false0'' (空字符串)nullundefinedNaN..然后将其设置为{}(一个空对象 - 它与之相同new Object()).
它也可以写成:
if (!secret) secret = {};
Run Code Online (Sandbox Code Playgroud)
但是,由于时间越长,大多数人都更喜欢上述内容.
此解决方案很有用,因为javascript没有默认的函数参数.
例如,PHP中的示例可能如下所示:
<?php
function foo($bar = 'default') {
echo $bar;
}
?>
Run Code Online (Sandbox Code Playgroud)
在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
Run Code Online (Sandbox Code Playgroud)
如果你只是想检查是否有值(无falsy值),那么你可以使用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
Run Code Online (Sandbox Code Playgroud)