https://github.com/lianbinghua

js基础

js有5种原始类型,一个对象类型:

5种原始类型:null  undefined number string boolean 

1种对象类型:object(Function,Date,Array,Number,Boolean,String)

==和===区别:

===,类型不同直接返回false

==,有隐试转换,比如:

'2'==2,true, 字符串转换为数字

true==1,true,布尔类型转换为数字

new String('1')==1,true,对象转换为其他基本类型

typeof适合基本类型及function检测,遇到null失败:

typeof null 结果: "object"

typeof NaN  结果:"number"

typeof Function 结果:"function"

typeof true 结果:"boolean"

typeof 1 结果:"number"

typeof '1' 结果:"string"

typeof [1,2] 结果:"object"

typeof new Object() 结果:"object"

typeof undefined 结果:"undefined"

instanceof适合自定义对象,也可以检测原生对象,在不同iframe和window间检测失效:

obj instanceof Object,要求左边必须是一个对象,右边必须是个函数对象或者函数构造器,否则报错。

instanceof 原理:左边的对象的原型链上是否有右边构造函数的prototype属性

Object.prototype.toString,通过{}.toString拿到,适合内置对象和基本类型,遇到null,undefined失效。

Object.prototype.toString.apply([]) 结果:"[object Array]"

Object.prototype.toString.apply(undefined) 结果:"[object Undefined]",ie6/7/8 返回 "[object Object]"

Object.prototype.toString.apply(null) 结果:"[object Null]",ie6/7/8 返回 "[object Object]"

原生事件:

DOM事件:click mouseover mousedown focus blur load....

BOM事件:resize  beforeunload storage orientationchange....

自定义事件:

本质:观察者模式

优点:跳出原生事件的限制,提高封装的抽象层级

 

posted @ 2016-07-27 22:02  连冰华  阅读(101)  评论(0编辑  收藏  举报