typeof

1.用法

typeof num

typeof(num)

2.返回值    "number"、"string"、"boolean"、"object"、"function" 和 "undefined"    ( null 、arr、obj 都返回 ‘object’   -  null 是为了 obj 的占位而生的 。 )

typeof  undefined   -  "undefined"   
typeof NaN   -  "number"

即,判断完成后返回值绝对的 string型, 此时转Boolean的话,是true;

3.意义

判断数据类型

4.特点

返回值为 string 类型,判断未定值不报错(使用 if 则会)

5. 扩展

instanceof      object instanceof constructor   

 检测某个对象是不是另一个对象的实例     测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性      

[] instanceof Array   true     

[] instanceof Object   true

function Foo(){} 
Foo.prototype = new Aoo();//JavaScript 原型继承 
var foo = new Foo(); 
console.log(foo instanceof Foo)//true 
console.log(foo instanceof Aoo)//true
如果表达式 obj instanceof Foo 返回true,则并不意味着该表达式会永远返回ture,因为Foo.prototype属性的值有可能会改变,改变之后的值很有可能不存在于obj的原型链上,这时原表达式的值就会成为false

function a (a,b){console.log(arguments instanceof Array)} a(1,2) false


更全面的判断
var type = function(data) {
      var toString = Object.prototype.toString;
      var dataType = data instanceof Element
                          ? 'element' // 为了统一DOM节点类型输出
                          : toString
                              .call(data)
                              .replace(/\[object\s(.+)\]/, ''$1')
                              .toLowerCase()
      return dataType
}
View Code

 



posted @ 2018-10-08 19:33  justSmile2  阅读(222)  评论(0编辑  收藏  举报