javascirpt 的一些在IE下不支持的函数小结

看红宝书看了两天,发现原来好多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());

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值