代码业务说明:
1.用eval函数将下面字符串解析成javaScript可执行代码
“var arr =[98,99,100]”
2.用eval函数将下面字符串解析成javaScript可执行代码
“{“name” : “Tim”,“age” : 20}”
下面是错误的代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>eval函数</title>
<script>
//eval函数可以将字符串当做JS代码解释执行
window.eval("var arr =[98,99,100]");
console.log(arr);
console.log("arr数组的第二个值为:"+arr[1]);
let str = "{\"name\" : \"Tim\",\"age\" : 20}";
window.eval("let strObj = " + str);
console.log(strObj);
</script>
</head>
<body>
</body>
</html>
执行结果:
错误根源代码:
window.eval("let strObj = " + str);
这行代码的"let",应当修改成"var"。
正确的代码:
window.eval("var strObj = " + str);
修改后执行代码结果:
执行结果完全正确。
转义字符细节问题:
let str = "{\"name\" : \"Tim\",\"age\" : 20}";
上面的代码如果没有转义字符,就会使这行代码第一个双引号与name前的双引号配成对,不能使其正常解析。