请求解释一下这个eval()函数的分析过程

Blueine 2018-06-04 10:53:03

为什么是先输出 z is 42 而不是 x is z is 42
还有就是
为什么会输出420? (也就是 x is 420)
...全文
844 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
eval()是你第二个console.log的参数,所有eval()会先执行得出个结果,再将结果作为参数,eval()优先于第二个console.log;eval()函数在执行的时候会输出其中的console.log,这就是为什么先输出z is 42
游北亮 2018-06-05
  • 打赏
  • 举报
回复
代码是按顺序执行的,在 console.log(‘x is', eval(str)) 里,先执行参数计算,也就是先执行了 eval,所以先执行了 str里的console.log(z is 42),最后返回x=420的值 计算完参数后,再执行外部的 console.log(‘x is', 420)
Hello World, 2018-06-05
  • 打赏
  • 举报
回复
eval的结果就是420,下面这个console.log输入了两个参数,解释器要先计算出参数的结果,就先输出了z is 42,然后再合成输出x is 420

87,987

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧