假设我在JavaScript中有一个函数:
function something (variable) {
console.log(variable);
}
Run Code Online (Sandbox Code Playgroud)
如果没有传递变量,如何设置,默认为null?
当你调用一个函数时,JavaScript对于所需函数参数的数量并不是很挑剔; 声明中提到但未传递的任何参数都将设置为该类型undefined.
例如:
function test(foo)
{
console.log(foo === undefined); // true
}
Run Code Online (Sandbox Code Playgroud)
要设置默认值,至少有三个选项:
function test(foo)
{
console.log(foo || 'default value');
}
Run Code Online (Sandbox Code Playgroud)
以上将输出fooif的真实值或'default value'其他值.
function test(foo)
{
console.log(foo === undefined ? foo : 'default value');
}
Run Code Online (Sandbox Code Playgroud)
foo如果不是undefined,则输出值'default value'.
最后,您可以计算传递的参数数量:
function test(foo)
{
console.log(arguments.length > 0 ? foo : 'default value');
}
Run Code Online (Sandbox Code Playgroud)
foo如果传递参数,这将输出(无论其类型)的值.
虽然undefined是不可写,因为ES5,并不是所有的浏览器都如此警惕强制执行这一点.如果您担心这个问题,可以使用两种方法:
foo === void 0;
typeof foo === 'undefined'; // also works for undeclared variables
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10596 次 |
| 最近记录: |