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'