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

Javascript JS:在提示框中输入一个真值,并让它警告其变量,javascript,variables,equals,Javascript,Variables,Equals,我想知道是否有可能在提示框中输入一个变量的值,并让它在原始变量的警报中返回给我 说:var myGoal=“answer”如果我在提示符中输入“应答”,那么,获取我的“应答””值、搜索并让其在警报中返回myGoal是什么好方法?实现所需的唯一方法是使用eval函数。Eval也被称为“邪恶”函数。它会给你的代码带来巨大的安全漏洞,而且效率极低。不要使用eval function test() { var answer = prompt("Hello? What is your name?

我想知道是否有可能在提示框中输入一个变量的值,并让它在原始变量的警报中返回给我


说:
var myGoal=“answer”如果我在提示符中输入“
应答”
,那么,获取我的“
应答”
”值、搜索并让其在警报中返回
myGoal
是什么好方法?

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

function test() 
{
    var answer = prompt("Hello? What is your name?",'');
    alert(answer);
}
问题是,分配给变量的值始终是字符串、数字、布尔值、未定义值、数组、函数或对象文字。不能将变量名作为值分配给另一个变量,因为当一个变量分配给另一个变量时,该变量的内容就是实际分配的内容


您必须重新设计您试图编写的测试,以显式地根据提供的值进行测试,而不是将字符串转换为变量名。

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

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


您必须重新设计您试图编写的测试,以便显式地根据提供的值进行测试,而不是将字符串转换为变量名。

类似的操作可以实现以下目的:

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

这基本上会迭代全局对象(窗口)中的所有内容,并在找到与您要查找的值相等的对象时发出警报。

类似的操作可以实现以下目的:

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

这基本上会迭代全局对象(窗口)中的所有内容,并在找到与您要查找的值相等的对象时发出警报。

如果您愿意稍微更改方法:

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

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

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

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

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

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

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

嘿,接近了。我的措辞相当糟糕。我的意思是,有没有一种方法可以准确地将我键入的内容输入到提示符中,搜索该值(字符串/数字)并返回其变量。说:var myGoal=“answer”;如果我在提示中输入“应答”,那么有什么好方法可以获取我的搜索值“应答”,并让它在警报中返回我的目标?嘿,关闭。我的措辞相当糟糕。我的意思是,有没有一种方法可以准确地将我键入的内容输入到提示符中,搜索该值(字符串/数字)并返回其变量。说:var myGoal=“answer”;如果我在提示中输入“答案”,有什么好方法可以获取我的搜索值“答案”,并让它在警报中返回myGoal?当您找到它时,警报将显示“答案”,因为这是分配给myGoal的。我想不出有什么理由这么做,你能指定你的用例吗?小心
窗口。提示
:它在许多常见的IE 7设置中都不起作用(取决于安全设置)。当你找到它时,警报会说“应答”,因为这是分配给myGoal的。我想不出任何理由这样做,你能指定你的用例吗?小心
窗口。提示
:它在许多常见的IE 7设置中不起作用(取决于安全设置)