前几天同事说数组的slice方法在IE8下有兼容问题,我查阅了MDN,文档里面有提到IE8及以下浏览器中,DOM对象组成的伪数组通过call调用slice方法没有遵循标准行为 我做了个demo在IE8上做了测试 <div>古</div> <div>德</div> <div>God</div> <script> var dom = document.getElementsByTagName("div");…
JavaScript--数组--slice方法 JavaScript中的slice方法类似于字符串的substring方法,作用是对数组进行截取. slice方法有两个参数,indexStart 和 indexEnd,分别表示截取的起始位置和结束位置,indexStart是必选的,indexEnd是可选的. 如果填写了indexEnd,方法会对数组从下标 indexStart 到下标 indexEnd 以左闭右开的方式进行截取:如果不填写indexEnd,方法会截取数组的从下标 indexSta…
slice slice(start,end):方法可从已有数组中返回选定的元素,返回一个新数组,包含从start到end(不包含该元素)的数组元素.(不会改变原数组) start参数:必须,规定从何处开始选取,如果为负数,规定从数组尾部算起的位置,-1是指最后一个元素. end参数:可选(如果该参数没有指定,那么切分的数组包含从start倒数组结束的所有元素,如果这个参数为负数,那么规定是从数组尾部开始算起的元素). 1 slice(1,3) var array = [1, 2, 3, 4, 5…
一, 伪数组 1. 具有length属性 2. 按索引方式存储数据 3. 不具有数组的方法, 比如push(),pop()等 二, 生成伪数组的方法 在js中生成伪数组的方法比较多 1. function的arguments对象 2. document.getElementsByTagName和document.childNodes,返回NodeList对象的都是伪数组 3. 上传文件时选择的file对象也是伪数组 4. 自定义的某些对象 三, 将伪数组转为真正的数组 1. 使用Array.pr…
当函数以 apply 方式调用时, 传参方式是一个由各个参数组成的数组或类数组(一个有length属性的对象),传入参数个数取决于 length 的值,例如,某个对象 args.length=3; apply 会将 args[0],args[1],args[2] 三个参数传入,如果对应的值不存在则传入了undefined. 例如: function f(a,b,c){ console.log(a,b,c);} f.apply(null,{0:123,1:456,2:789,length:2});…
伪数组:无法调用数组的方法,但是有length属性,又可以索引获取内部项的数据结构. 比如:arguments.getElementsByTagName等一系列dom获取的NodeList对象,他们 都算.   转换方法   一: 假设这里有个伪数组:pagis let arr = [].slice.call(pagis) console.log(arr)   这时arr就是真数组了. 二: let arr = Array.prototype.slice.call(pagis); 利用了slic…
超简单的伪数组转数组的方法, 简单到令人发指! (这里伪数组使用arguments) 1.使用 Array.prototype.slice Array.prototype.slice.call(arguments) slice() 方法返回一个新的数组对象,这一对象是一个由 begin和 end(不包括end)决定的原数组的浅拷贝.原始数组不会被改变. 虽然是浅拷贝, 但是对于arguments的转数组足够了, 因为啥呢?就是因为arguments这个东西一般不会动它. 2. 使用Array.f…
在js中,数组是特殊的对象,凡是对象有的性质,数组都有,数组表示有序数据的集合,而对象表示无序数据的集合. 那伪数组是什么呢,当然它也是对象,伪数组一般具有以下特点: 按索引方式存储数据: 具有length属性: 没有数组的push.shift.pop等方法; function的arguments对象,还有getElementsByTagName.ele.childNodes等返回的NodeList对象,或者自定义的某些对象,这些都可以是伪数组. 我们可以通过以下几种方式将伪数组转换为标准数组:…
IE8.IE9浏览器下报:JSON未定义的问题 解决方法: 在jsp中引入如下代码 <!-- 解决 IE8.IE9 下显示混乱的问题--><% String browserString = BrowserEnum.valueOf1(request); if(browserString == "IE8" || browserString == "IE9"){%> <META http-equiv="X-UA-Compatible…
数组(字符串)使用slice方法的目的就是截取目标数组(字符串),通俗的来讲就是截取想要的.网上有很多slice方法的实例加以说明,在此主要是从特殊到一般对此方法进行了总结. 先说总结的方法,再看下面的例子进行理解. 假设已知一个数组长度为len,则参数的有效范围为[-len,len-1],-len和0为第一个元素的下标,-1和len-1表示最后一个元素的下标.slice()总共有两个参数,不填参数返回所有元素:若只填一个参数x,则x为起始元素的下标(起始元素一定会被截取),返回x之后的所有元素…