找出变量是否存在

Abs*_*Abs 6 javascript jquery

我想知道是否存在Javascript变量.这是我到目前为止从不同的论坛拼凑而成的:

function valueOfVar(foo){

    var has_foo = typeof foo != 'undefined';

    if(has_foo){
        alert('1 = true');
        return true;
    }
    else {
        alert('1 = false');
        return false;
    }

}
Run Code Online (Sandbox Code Playgroud)

请注意,我希望传入一个字符串作为foo.示例:valueOfVar(box_split [0] +'_ 2')

现在,我认为这不起作用,因为当某些变量甚至不存在时它返回true.事实上,它似乎一直都是真实的.

当我使用它时,一个有效的JQuery实现也会很棒.

谢谢大家的帮助

Ric*_*ich 6

你的意思是这样的吗?

function variableDefined (name) {
    return typeof this[name] !== 'undefined';
}

console.log(variableDefined('fred'));
// Logs "false"

var fred = 10;
console.log(variableDefined('fred'));
// Logs "true"
Run Code Online (Sandbox Code Playgroud)

如果你想能够处理局部变量,你必须做一些非常奇怪的事情:

function variableDefined2 (value) {
    return typeof value !== 'undefined';
}

function test() {
    var name = 'alice'
    console.log(variableDefined2(eval(name)));
    var alice = 11;
    console.log(variableDefined2(eval(name)));
}

test();
// Logs false, true
Run Code Online (Sandbox Code Playgroud)