在下面的函数中:
foo = function(a){
if (!a) a = "Some value";
// something done with a
return a;
}
当没有声明“a”时我想分配一个默认值用于函数的其余部分,虽然“a”是一个参数名称并且没有声明为“var a”,它是这个的私有(private)变量吗功能?在函数执行后它似乎没有显示为全局变量,这是一种标准(即一致)的可能用法吗?
最佳答案
它是函数范围内的私有(private)变量。它在全局范围内是“不可见的”。
至于你的代码你最好这样写
foo = function(a){
if (typeof a == "undefined") a = "Some value";
// something done with a
return a;
}
因为 !a
可以为 0
为真,一个空字符串 ''
或只是 null
。
关于javascript未分配的默认函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11942149/