理解这一行jQuery

时间:2011-10-27 19:04:15

标签: jquery

jQuery 1.7rc1的第3906行是

expando = "sizcache" + (Math.random() + '').replace('.', ''),

我不明白使用+ ''的意义。不是以上等同于

expando = ("sizcache" + Math.random()).replace('.', ''),

6 个答案:

答案 0 :(得分:6)

+ ''是将其转换为字符串 - 它允许替换工作。

如果大小文本更改为包含。

,则不一样
"sizcache." + (Math.random() + '').replace('.', '') != ("sizcache." + Math.random() + '').replace('.', '')

例如。

答案 1 :(得分:3)

是的,你是对的。只是另一种方式。

答案 2 :(得分:1)

我相信他们正在使用“+”来将数字转换为字符串。

答案 3 :(得分:0)

我认为这可能是将Math.random()的返回值强制转换为字符串的快捷方式,因此可以使用replace()

答案 4 :(得分:0)

这不是一回事。在他们的版本中,他们得到一个随机数,通过连接一个空字符串将其转换为字符串,删除点,然后追加sizcache。您的版本会将sizcache附加到随机数,然后删除该点。

当然,最终结果是相同的,但可能与另一个字符串值不同,例如它是否包含像siz.cache这样的点。

答案 5 :(得分:0)

是的,您的方法会产生相同的结果。

+ ''部分用于将数字转换为字符串。然后在该字符串上调用replace函数,并预先添加sizcache字符串。

但是,使用您的方法,您首先将该字符串添加到该数字(并将该数字转换为该过程中的字符串),然后在整个事件上调用replace。由于您只是删除点,结果是相同的。