javascript未分配的默认function参数
在以下function中:
foo = function(a){ if (!a) a = "Some value"; // something done with a return a; }
当没有声明“a”时,我想为函数的其余部分分配一个默认值,尽pipe“a”是一个参数名,并没有声明为“var a”,它是这个函数的一个私有variables吗? 在函数执行之后,它似乎不会显示为全局variables,这是一个标准(即一致的)可能的用法吗?
这是函数范围内的一个私有variables。 它在全球范围内是“隐形”的。
至于你的代码,你最好这样写
foo = function(a){ if (typeof a == "undefined") a = "Some value"; // something done with a return a; }
因为!a
可以为0
,一个空string''
或者只是null
。
是的,在这种情况下,函数内部有一个范围。 你甚至可以用它来覆盖本地作用域的全局variables。 所以例如,你可以做function ($){....}(JQuery);
所以你知道$
将永远是一个JQuery框架的variables。
参数始终具有私有函数作用域。
var a = 'Hi'; foo = function(a) { if (!a) a = "Some value"; // something done with a return a; }; console.log(a); // Logs 'Hi' console.log('Bye'); // Logs 'Bye'