我看到这段代码出错:
$('#foo').text(({rnd:((Math.random())>>0)}).rnd)
在Safari 5.0 (5533.16)
中,该非常具体的示例显示了一个浮点数。我测试的每个其他浏览器都显示零(0
)。
我的两个问题是:
我的想法是>>
被某种方式解释为(>)>0
而不是右移。
答案 0 :(得分:2)
我的想法是>>被某种方式解释为(>)> 0而不是右移。
不,如果它像这样标记它,它会看到语法错误,你根本不会得到任何东西。 (还有许多其他事情会破坏;标记器 对操作员贪婪。)
更有可能是错误的优化(现在已经修复),将>> 0
视为无操作。我必须仔细检查the spec(第11.7.2节[“签名右移操作员(>>)”],第5版第76页)以提醒自己为什么它出现0
而不是Math.random()
的直接结果。关键是,当然:
结果是带符号的32位整数。
谈谈你的边缘案件......