Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
理解jQuery的这一行_Jquery - Fatal编程技术网

理解jQuery的这一行

理解jQuery的这一行,jquery,Jquery,jQuery 1.7rc1的第3906行是 expando=“sizcache”+(Math.random()+)。替换('.',''), 我不明白使用+'的意义。以上不等于 expando=(“sizcache”+Math.random()).replace('.',''),+'是将其转换为字符串-它允许replace工作 如果文本的大小更改为包含一个 "sizcache." + (Math.random() + '').replace('.', '') != ("sizcache." + M

jQuery 1.7rc1的第3906行是

expando=“sizcache”+(Math.random()+)。替换('.',''),

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

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

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

如果文本的大小更改为包含一个

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

例如。

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

我认为将
Math.random()
的返回值转换为字符串可能是一种快速的方法,因此可以使用
replace()。这只是另一种方法。

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


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

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

+'
部分用于将数字转换为字符串。然后对该字符串调用
replace
函数,并在
sizcache
字符串前面加上前缀


但是,使用您的方法时,首先要将该字符串添加到数字中(并在过程中将数字转换为字符串),然后对整个过程调用
replace
。因为您只是删除点,所以结果是一样的。

是的,您不能对一个数字进行替换。从理论上讲,原始的jQuery方法更快。字符串替换的性能与输入字符串的长度直接相关。使用您知道不需要替换的数据增加输入的字符串长度是一种直接但很小的性能损失。如果这一行代码被调用,那么性能节约可能会变得显著。但是,请稍候,“sizcache”是一个字符串,因此转换为字符串应该已经发生。在调用
.replace
方法之前,sizcache不会与随机数组合。然而,你是对的,你的第二行代码给出了一个等价的结果。不完全一样。这将是相同的:((“sizcache”+Math.random()).replace(“.”,“”),但如果文本sizecache更改为“have a”。在它里面会有一个bug,你敢说
sizcache
可能包含一个点吗?在这种情况下,它可能不包含,它是一个字符串文本。但是,将来可能会将其重新计算为带有点的内容,代码仍然可以工作。如果“sizcache”是一个动态字符串,其中可能包含有意义的小数点,该怎么办P