-
function
查看全部 -
判断是否为数组
查看全部 -
数组元素增删
查看全部 -
3、Object.prototype.toString(常用)
[[Class]]:通过{}.toString拿到,适合内置对象和基本元素,遇到null和undefined失效(ie6/7/8等返回[object Object]);
(1)
① Object.prototype.toString.apply([]) === "[object Array]"; ② Object.prototype.toString.apply(function(){}) === "[object Function]"; ③ Object.prototype.toString.apply(null) === "[object Null]"; // ie6/7/8 Object prototype.toString.apply(null) 返回“[object Object]” ④ Object.prototype.toString.apply(undefined) === "[object Undefined]"
4、constructor
constructor是可以被改写的。
5、duck type(较常用)
查看全部 -
一、类型检测
1、typeof(常用)
typeof:返回一个字符串,适合基本类型及函数对象(function)检测,遇到null失效。
(1)函数对象:function
(2)数组:object
(3)NaN:number
(4)undefined: undefined
(5)null: object(历史遗留因素)
2、instanceof(常用)
instanceof:基于原型链去判断,适合自定义对象,也可以用来检测原生对象,在不同iframe和window间检测时失效。
(1)obj instanceof Object: 左操作数obj是一个对象(如果是基本类型,直接返回false),右操作数Object是一个函数对象/函数构造器(如果不是,会抛出type error异常)。
(2)原理:判断左操作数对象的原型链上是否有右边这个构造函数的prototype属性
(3)[1, 2] instanceof Array === true,
new Object() instanceof Array === false
查看全部 -
作为函数直接调用:非严格模式是指向window
严格模式指向undefined
作为方法调用:作为对象方法调用 指向该对象
get/set 方法 :指向get set方法所在的对象里面
构造器中的this : 没有return 或返回基本类型的话 this作为返回值
返回值是对象的话 this指向新建的对象
call/apply调用的话:this指向call或apply的第一个参数
查看全部 -
巧用运算符 链式读取
查看全部 -
访问对象属性,可以用
obj.x
obj.['x']
一般需要拼属性名的时候可以用 [ ]
查看全部 -
严格模式。
查看全部 -
mark。
查看全部 -
类型检测:
1、typeof 适合基本类型和函数(null->object)
2、instanceof 适合对象类型(检测原型链;不同window和iframe的对象不能使用instanceof)
3、Object.ptototype.toString.apply() 是个对象类型(ie6/7/8下,null->object)
查看全部 -
对基本类型进行对象操作时,会创建一个临时的对象,操作完成后会删除该对象。
查看全部 -
== 做比较
查看全部 -
对象做比较:对引用进行比较。(不指向同一对象则不等?)
查看全部 -
技巧1:利用+和-,完成类型转换
查看全部
举报