mVC*_*Chr 65 javascript jquery type-conversion slice
当我发现这个时,我正在研究jQuery源代码(v1.5第2295行):
namespace = new RegExp("(^|\\.)" +
jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)");
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么要slice(0)
在这里使用?
Ano*_*on. 104
sort()
修改它所调用的数组 - 并且绕过其他代码可能依赖的变异内容并不是很好.
slice()
总是返回一个新数组 - 返回的数组slice(0)
与输入相同,这基本上意味着它是一种复制数组的廉价方法.
ide*_*ide 30
arr.slice(0)
通过从索引0处的元素到最后一个元素获取切片来生成原始数组的副本.
它还用于将类似数组的对象转换为数组.例如,一个DOM NodeList
(由几个DOM方法返回getElementsByTagName
)不是一个数组,但它是一个类似于数组的对象,带有一个length
字段,并且在JavaScript中是可索引的.要将其转换为数组,通常使用:
var anchorArray = [].slice.call(document.getElementsByTagName('a'), 0)
Run Code Online (Sandbox Code Playgroud)
小智 5
slice(0)
创建一个与原始数组相同的新数组。很多时候您想保留原始数组并创建一个新数组。
如果使用slice(1)
,它将从索引位置 1 开始创建一个不同的数组。
类似的事情也适用于字符串。
归档时间: |
|
查看次数: |
31902 次 |
最近记录: |