javascript - eval 返回未定义,浏览器返回结果

标签 javascript eval

我有一个如下所示的 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/

相关文章:

javascript - 如何匹配点下划线下划线 ".__"

javascript - 当用户点击使用 javascript 函数时显示一个 div

javascript - 识别在表格内单击了哪个按钮

JavaScript - event.which 总是返回 1 悬停

JavaScript 窗口 ["functionName"](参数) 返回 "is not a function"TypeError

javascript - 如何使用对象属性、运算符和值的字符串表示形式?

javascript - 使用 jquery 删除禁用属性后,输入字段为只读

Python 的literal_eval 表示字符串 'a,b,c' 格式错误

Python 在读取列表列表时避免 Eval

Matlab EVAL——将访问范围限制为选定的内置函数/变量子集?