数组去重 、判断type try...catch,es5标准模式

一、数组去重

  var arr = [1, 2, 1, 1, 1, 2, 3, 4, 4, 5, 3,
1,7,8,8,7];
        Array.prototype.unique = function ()
{
            var obj = {},
                len = this.length,
                arr = [];
            for (var i = 0; i < len; i++) {
                if (!obj[this[i]]) {   //当前
位置=undefined
                    obj[this[i]] = this[i];
                    arr.push(this[i]);
                }
            }
            return arr;
        }

二、判断参数type
       

function type(target) {
            var temp = {
                "[object Array]": "array",
                "[object Object]": "object",
                "[object Number]": "number -
object",
                "[object Boolean]": "boolean
- object",
                "[object String]": "string -
object",
            }
            if (target ==null){
                return "null";
            }
            if(typeof(target) == "object"){  
// 判断参数类型是否为引用值   数组、对象、包装
类
                var str =
Object.prototype.toString.call(target); 
                return temp[str];
            }else{
                return typeof(target);
            }
        }

三、try...catch,es5标准模式
try{
//当try中代码出现错误,try不抛出错误,不会执行
错误后的try里面的代码

}catch(e){
//
}


Error.name 的六种值对应信息:

1.EvalError:eval()使用与定义不一致

2.RangeError:数值越界

3.ReferenceError:非法或不能识别的引用数值

4.SyntaxError:发生语法解析错误

5.URLError:URL处理函数使用不当


四、es5 严格模式

不再兼容3的一些不规则语法。使用全新的es5规范。(推荐局部使用)
es3.0和es5.0产生冲突的部分
es5.0严格模式 那么es3.0和es5.0产生冲突的部分用5.0

1."use strict";//es5.0严格模式的启动   写在最顶端(函数内也是第一行)

2.使用字符串,不会最不兼容严格模式的浏览器产生影响

3.不允许使用with(参数){}:改变作用域链,把参数当作作用域的最顶端

4.变量赋值前必须声明,局部的this预编译时this不再指向window,必须赋值,赋值什么就是什么,拒绝重复属性和参数。
5.eval:把字符串当成代码执行


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值