我正在尝试做一个"自己试试"编辑但没有使用框架。 所以我添加了2个textareas,一个用于代码,一个用于显示结果。我还添加了一个" Run"按钮。 我编写了以下函数来执行第一个文本区域中的代码,并在第二个文本区域中显示结果:
http://localhost/project-folder-name
但我得到的结果文本区域是:undefined。 对不起我的愚蠢问题,但我真的是初学者。所以:
eval功能是否仅适用于javascript代码?
将结果部分作为文本区域是否正确?
答案 0 :(得分:1)
eval功能是否仅适用于javascript代码?
是的,它只适用于JavScript代码。当JavaScript代码被写为字符串时,为了执行该代码,我们使用eval()
这仅适用于JavaScript。我们不会在HTML中使用eval()
,因为浏览器上的HTML即使是字符串也能正常工作
例如,
function looseJsonParse(obj) {
return eval(obj);
}
console.log(looseJsonParse(
"{a:(4-1), b:function(){}, c:new Date()}"
))

将结果部分作为文本区域是否正确?
不,<textarea></textarea>
是输入元素,表示它包含value
。内部HTML适用于其他元素。
因此,对于上述情况,document.getElementById('result').val = Code
应该有效。
注意:如果值包含HTML,则它将被视为文本,并且不会在浏览器上执行。
奖励:使用大写字母定义变量是不好的做法。最佳实践说变量应该以小写字母开头,它可以是驼峰式的。
脚注:JavaScript eval()&amp;&amp; textarea value
我希望这有帮助!
答案 1 :(得分:0)
是的,eval仅适用于JavaScript代码。要将代码呈现为HTML,只需将其分配给innerHTML而不使用eval:
document.getElementById('result').innerHTML=Code;
要显示结果,您应该使用div
,而不是textarea
。
答案 2 :(得分:0)
function a() { return 1 }; a();
document.getElementById('result').value = eval(Code);