我有一个如下所示的 JavaScript 字符串:
"h" + "e" + "l" + ("foo", "bar", "l") + ("abc", "def", "o")
如果我将字符串保存到变量并对其进行评估,它将返回为未定义:
var str = "h" + "e" + "l" + ("foo", "bar", "l") + ("abc", "def", "o");
var x = eval (str);
console.log(x) // undefined
但是,如果我将字符串粘贴到 Chrome JS 控制台中,它会按预期返回:
"hello"
eval 会返回 undefined 的任何原因,以及 JS 控制台如何完成这一壮举?
谢谢!
最佳答案
表达式"h" + "e" + "l" + ("foo", "bar", "l") + ("abc", "def", "o")
计算结果为字符串 "hello"
.
如果您将其粘贴到 Chrome 控制台中,您就会得到它评估后显示的内容。
如果你将其传递给 eval
那么表达式的计算结果为字符串 "hello"
然后 eval 获取该字符串并计算出变量名称 hello
未定义。
如果你只是想得到"hello"
到变量中,然后不要使用 eval
,使用作业。
var x = "h" + "e" + "l" + ("foo", "bar", "l") + ("abc", "def", "o");
console.log(x);
关于javascript - eval 返回未定义,浏览器返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35639254/