javascirpt 的一些在IE下不支持的函数小结
2015-07-10 17:18
471 查看
看红宝书看了两天,发现原来好多js的方法都是在IE9+才支持,连IE8都不支持。。想要实现这些方法只能自己写,总结下。
// ============ isArray ===============// // isArray function isArray(value){ return Object.prototype.toString.call(value) == "[object Array]"; } var arr = [1,2,3,4,5]; alert(isArray(arr)); // IE8 及以下不支持 // ============ filter 等 ===============// // 数组的一些方法 every(), filter(), forEach(), map(), some() // IE8 及以下不支持 // 解决办法,以filter为例,自己写一个filter if (!Array.prototype.filter) { Array.prototype.filter = function(fun /*, thisp*/){ var len = this.length; if (typeof fun != "function"){ throw new TypeError(); } var res = new Array(); var thisp = arguments[1]; for (var i = 0; i < len; i++){ if (i in this){ var val = this[i]; // in case fun mutates this if (fun.call(thisp, val, i, this)) { res.push(val); } } } return res; }; } var numbers = [1,2,3,4,5,6]; var filterResult = numbers.filter(function(item, inde, array){ return (item>2); }); alert(filterResult); // 3,4,5,6 // ============ Date.now() ===============// // Date.now(); IE8及以下不支持,只能自己写一个解决 if(!Date.now){ Date.now = function(){ return new Date().valueOf(); } } alert(Date.now()); // ============ stringValue[1] ===============// // 在IE7 及以下版本显示 undefined var stringValue = "hello world"; alert(stringValue[1]); // ============ trim() ===============// // 在IE8 及以下版本无效,需要自己写 String.prototype.trim = function(){ return this.replace(/(^\s*)(\s*$)/g, ""); }; var stringValue2 = " hello world "; alert(stringValue2.trim());
相关文章推荐
- 【项目分析】利用C#改写JAVA中的Base64.DecodeBase64以及Inflater解码
- java list 交集 并集 差集 去重复并集
- [JAVA] 冻结Excel的第一行或第一列
- Java项目中读取properties文件
- Java堆栈详解
- Java集合系列之HashMap源码分析
- java泛型
- Java集合之HashMap源码分析
- java学习之旅51--面向对象_24_内部类详解
- 【leetcode-49】Anagrams(java)
- 说说Java生态圈的那些事儿
- java基础知识笔记
- java内功之jvm加载双亲模式
- Drools学习笔记-01-在eclipse indgo集成Drools5.5
- eclipse不编译生成.class的解决办法
- android-Eclipse,32位的工程导入64位Eclipse里,中文乱码
- Java工具方法hutool 使用备注
- Java 终于有 Lambda 表达式啦~Java 8 语言变化——Lambda 表达式和接口类更改【转载】
- JAVA类加载和反射介绍
- eclipse android 设置及修改生成apk的debug签名文件