`

处理JS1.6以前的版本不支持indexOf 的方法

 
阅读更多
javascript中indexof方法使用问题小结:
js中的indexOf方法的作用是:
根据给定参数x返回目标字符串(可以看成字符的数组)或数组中与x相等的项的索引。
这个方法相当有用,很多编程语言中都有相对应的实现,javascript中也不例外,然而当我在ie中运行如下代码时候:

却被提示"对象不支持此属性和方法" 。而在chrome,firefox下去运行良好。但google发现原来js中Array的indexOf方法在js1.6版本中才给予了实现,ie7,8中只实现到了js1.3版本,chrome为js1.7版本,ff为js1.8版本。(ie依旧慢半拍)。无奈,只好针对ie进行扩展:


使用如下:


这里我们针对Array的原型进行了扩展,在扩展方法的命名上我加上了"_"字符,我认为这是一个好的习惯,当你在针对原型进行扩展的时候有必要对自己的扩展加以标记。
在_indexOf方法中,我们首先判断当前Array是否实现了"indexOf" 方法,如果是的话直接调用系统发法,否则进行遍历。
分享到:
评论

相关推荐

    JavaScript中关于indexOf的使用方法与问题小结

    在JavaScript 1.6版本之前,`indexOf`方法并未在所有浏览器中得到支持,尤其是IE浏览器在IE7和IE8中仅实现了到JavaScript 1.3版本,因此在这些旧版本的IE中尝试使用`indexOf`会抛出错误。相反,Chrome和Firefox等较...

    prototype1.6文档和js

    2. **数组操作**:Prototype 对数组对象进行了增强,增加了如`Array.prototype.each()`、`Array.prototype.include()`和`Array.prototype.indexOf()`等方法,方便对数组进行迭代和查找。 3. **DOM 操作**:...

    prototype 1.6.0.2.js+使用DEMO例子

    2. **数组操作**:Prototype为Array对象增加了许多实用方法,如`each()`用于遍历数组,`indexOf()`和`include()`用于查找元素,`map()`和`collect()`用于转换数组,`any()`和`all()`用于检查条件。 3. **字符串处理...

    prototype-1.6.0.3

    3. **Array 类扩展**:添加了 map、each、collect、indexOf 等数组操作方法,使得数组操作更加便捷。 4. **String 类扩展**:增加了诸如 camelize、hyphenate、capitalize 等字符串处理方法,方便进行格式化和转换...

    prototype 1.6中文API

    Prototype为数组对象添加了许多实用方法,例如`each()`用于遍历数组,`indexOf()`和`lastIndexOf()`用于查找元素索引,`map()`和`collect()`用于创建新数组,`without()`用于移除包含特定元素的副本,`any()`和`all...

    Java API 1.6中文版

    例如,String类提供了字符串操作的方法,如concat、indexOf和substring。 2. **集合框架**:Java 1.6引入了更完善的集合框架,包括List、Set、Map接口以及ArrayList、LinkedList、HashSet、HashMap等实现类。这些...

    Prototype源码浅析 String部分(一)之有关indexOf优化

    在Prototype 1.6版本中,startsWith实际上使用的是indexOf方法,而在1.7版本中改用lastIndexOf方法,并将搜索起点设置为0,从而在找到第一次匹配时就停止搜索,提高了效率。这一点在处理包含大量字符串的大型数据时...

    JavaScript ES5标准中新增的Array方法

    ES5中新增的不少东西,...indexOf (js v1.6) lastIndexOf (js v1.6) reduce (js v1.8) reduceRight (js v1.8) 1、js中常用的数组Array对象属性: 如图,其中用红色圆圈标记的部分,为ES5新增的属性。 2、浏览器支持

    javascript技巧(珍藏版)

    - 检查数组方法`indexOf`和`forEach`是否存在来判断是否支持JavaScript 1.6。 - 通过构造函数解构赋值来判断是否支持JavaScript 1.7。 - 检查数组方法`reduce`、`reduceRight`以及`JSON`对象是否存在来判断是否...

    28个常用JavaScript方法代码块

    在某些情况下,可能需要了解当前浏览器支持的JavaScript版本。以下是一个用于检测JavaScript版本的函数: ```javascript function getJsVersion() { var n = navigator; var u = n.userAgent; var apn = n....

    jQuery1.6 使用方法二

    - 如果当前环境支持 `Array.prototype.indexOf` 方法,则直接使用该方法。 - 否则,遍历数组进行查找。 2. **遍历数组**: - 从数组的第一个元素开始遍历,直到找到目标值或遍历完整个数组。 - 如果找到目标值...

    判断浏览器的javascript版本的代码

    在给定的代码中,主要涉及到的是通过检测浏览器对特定JavaScript方法的支持来判断其JavaScript引擎的版本。 首先,让我们分析一下这段代码的逻辑: 1. `var JS_ver = [];` 创建一个空数组用于存储检测到的...

    Underscore源码解析[归类].pdf

    除此之外,Underscore还提供了其他集合处理方法,如`map`、`reduce`、`filter`、`every`、`some`、`indexOf`等,这些方法极大地丰富了对数据结构的操作。 在Underscore中,数组和对象的处理方法有着广泛的应用,...

    JavaScript完全自学宝典 源代码

    3.2.html indexOf()函数与lastIndexOf()函数。 3.3.html 截取字符串的子串。 3.4.html 用户自定义的实现slice函数功能的函数。 3.5.html 删除数组最后项的方法。 3.6.html 向数组头添加一个项。...

    Dojo 1.9 modules

    通过上述内容,我们可以了解到Dojo 1.9 Modules中`dojo/_base/array`模块所提供的核心功能,包括`indexOf`、`lastIndexOf`和`forEach`等数组处理方法。这些方法不仅增强了数组的操作能力,还提供了更好的跨浏览器...

    深入解析Backbone.js框架的依赖库Underscore.js的作用

    Underscore.js 会优先使用JavaScript 1.6及以后版本中的内置方法,如果宿主环境支持的话,以提高性能。对于不支持这些方法的环境,Underscore会提供自己的实现。 ### 4. 命名空间管理 默认情况下,Underscore 使用...

    Javascript Cookbook

    - 使用 `indexOf()` 方法来定位子串的位置。 - `lastIndexOf()` 方法可以查找子串最后一次出现的位置。 - 如果子串不存在,则返回 `-1`。 **1.5 从字符串中提取子串 (Extracting a Substring from a String)** -...

    JavaScript小技巧

    下面是一个简单的方法来检查当前环境支持的JavaScript版本: ```javascript var JS_ver = []; (Number.prototype.toFixed) ? JS_ver.push("1.5") : false; ([].indexOf && [].forEach) ? JS_ver.push("1.6") : ...

Global site tag (gtag.js) - Google Analytics