确保返回值被正确解析为 JavaScript 表达式: eval() 会将传入的字符串当作 JavaScript 代码执行。如果不加括号,某些情况下返回值可能不会被正确解释。特别是当返回值是一个对象字面量(object literal)时,如果不加括号,JavaScript 引擎可能会将其解析为代码块而不是表达式,从而导致语法错误或非预期的结果。
例如:
let str = "{'a': 1, 'b': 2}";
// 错误示范:不加括号,会被解析为代码块,导致语法错误或非预期的结果
let obj = eval(str); // SyntaxError: Unexpected token ':'
// 正确示范:加上括号,强制解析为表达式
let obj = eval("(" + str + ")"); // obj = {a: 1, b: 2}