以下代码给出了一些意想不到的结果。任何人都可以告诉我背后的原因或逻辑吗?
<HTML><body><script type="text/javascript">s="10+10";alert("here 3 : "+eval(s+s+s));alert("here 4 :+eval(s+2));</script></body></HTML>
在第一次提醒时它正在提供2040
,在第二次提醒时它正在提供112
我无法理解逻辑,请帮助我。
答案 0 :(得分:1)
eval
是不好的做法,如何回答你的问题:
`s="10+10"`
s
现在是"10+10"
eval(s+s+s)
=&gt;
eval("10+10"+"10+10"+"10+10")
=&gt;
eval("10+1010+1010+10")
=&gt;
2040
和
eval(s+2)
=&gt;
eval("10+10"+2)
=&gt;
eval("10+102")
=&gt;
112
你的意思是:
eval(s+"+"+s+"+"+s)
和
eval(s+"+2")