我正在查看Gmail的一些AJAX调用,并注意到有时调用的返回值以数字开头。例如:(请注意,第一行后没有分号)
3
[1, 2];
如果我将这段代码输入到JavaScript控制台中,会返回undefined。然而,如果第二个参数是数字或字符串,则会返回第二个参数的值。例如:3
4
返回 4。
我猜他们这么做是为了防止 JSONP 类型的攻击,但是有人知道正在进行什么样的底层评估吗? 在第二个案例中,我认为在第一行后会“插入”一个分号,这样返回 4 就有意义了。然而,我想不出第一个表达式为什么会返回 undefined。
{"d":}
包装器要糟糕得多 - 通过在Number原型上定义属性,可以确定最后一个元素的内容是否与某个值匹配。 (因此,如果有人打算以此修复Firefox 2-bug...请注意!=)) - Ry-