我在玩eval,注意到它可以评估Chrome、Firefox和Opera中的非字符串:
eval(Array) === Array; // true
eval(this) === this; // true
eval(4 * 3 / 2) === 6; // true这是一种标准行为吗?有任何记载吗?除了字符串参数之外,我找不到任何提到eval的地方。
如果这不是一种标准行为,那么有人能识别出不起作用的主机环境吗?
发布于 2012-03-10 17:19:38
在没有字符串的情况下,代码已经在较低的级别上进行了计算,即在传递给eval之前(例如,您的最后一条语句只是在执行eval(6))。任何函数都是这样的;这是计算JavaScript代码的方法。从这个意义上说,eval并不神奇,因为它“只是”一个“只是”接受一个论点的函数。
当传递非字符串的am表达式时,eval应该返回什么?
x)不是字符串,则返回x。https://stackoverflow.com/questions/9648465
复制相似问题