JS:在提示框中输入一个TRUE值并让它警告其变量

时间:2009-10-08 03:08:18

标签: javascript variables equals

我想知道是否可以在变量框中输入变量值,让它在原始变量的警报中返回给我。

说:var myGoal = "answer";如果我在提示符中输入“answer”,那么获取“answer”值,搜索并返回{的好方法是什么? {1}}在警报中?

4 个答案:

答案 0 :(得分:2)

这样的事情可以解决问题:

function test(val)
{
    for (var i in window)
    {
        if (window.hasOwnProperty(i) && window[i] === val)
        {
            alert(i);
        }
    }
}

这基本上迭代了全局对象(窗口)中的所有内容,并在找到一个等于您正在寻找的值时触发警报。

答案 1 :(得分:1)

如果您愿意稍微改变一下您的方法:

var Data = new Object();
Data["myGoal"] = "answer";
// ...

// Get response from prompt...
var response = /* ... */;

for (var key in Data)
{
    if (Data[key] == response)
    {
        alert(key);
    }
}

答案 2 :(得分:0)

function test() 
{
    var answer = prompt("Hello? What is your name?",'');
    alert(answer);
}

答案 3 :(得分:0)

实现您所希望的唯一方法是使用eval函数。 Eval也被称为“邪恶”功能。它可能会给代码带来大量安全漏洞,而且效率极低。不要使用eval。

问题是分配给变量的值将始终是字符串,数字,布尔值,未定义,数组,函数或对象字面值。您不能将变量名称作为值分配给另一个变量,因为当一个变量分配给另一个变量时,变量的内容就是实际分配的内容。

您将不得不重新设计您尝试编写的测试,以显式测试提供的值,而不是将字符串转换为变量名。