如何在全局范围内引用未定义的参数

Say*_*iss 0 javascript

var a = 2;
function f(a) {return a;}
console.log(f(1));// return 1
console.log(f());// return undefined, but I want to make it return 2...
Run Code Online (Sandbox Code Playgroud)

f()返回undefined,但我想a在全局范围内引用变量.我怎么能实现这一目标?

dec*_*eze 5

var a = 2;
function f(b) {
    return b || a;
}
Run Code Online (Sandbox Code Playgroud)

你需要为函数参数使用不同的名称,否则它会影响外部,a并且不会给你任何返回它的机会.然后,决定返回哪个值就是一件简单的事情.在这里,我使用一个简单的检查,你可能会或可能不想使用更详细的东西typeof b === 'undefined'.

  • @RickHitchcock,_"这里我使用的是一个简单的假检查,你可能想也可能不想使用类似b ==='undefined'之类的更详细的东西."_确实涵盖了:) (2认同)