js—typeof与instanceof的区别

typeof 的定义和用法:返回值是一个字符串,用来说明变量的数据类型

  • typeof 一般只能返回如下几个结果:number,boolean,string,function,object,undefined。
  • typeof 来获取一个变量是否存在,如 if(typeof a!="undefined"){alert("ok")},而不要去使用 if(a) 因为如果 a 不存在(未声明)则会出错。
  • 对于 Array,Null 等特殊对象使用 typeof 一律返回 object,这正是 typeof 的局限性。
<script> 
    var example1 = new Array;           //声明数组
    console.log(typeof example1);       //object

    var example2 = 1;                   //声明数
    console.log(typeof example2);       //number

    var example3 = true;                //声明布尔类型
    console.log(typeof example3);       //boolean

    var example4 = 'this is example4';  //声明字符串
    console.log(typeof example4);       //string

    var example5 = function(){};        //声明函数
    console.log(typeof example5);       //function

    var example6;                       //声明,没赋值
    console.log(typeof example6);       //undefined
 </script>


Instanceof 的定义和用法:用于判断一个变量是否属于某个对象的实例

  •   返回值为  true  或  false
<script>
    var dom = new Array();   

    console.log(dom instanceof Array);   //true
    console.log(dom instanceof Object);  //true
    console.log(dom instanceof String);  //flase
</script>

关系为:  Object  ==>  Object  ==>  Array

猜你喜欢

转载自blog.csdn.net/qq_42720683/article/details/82382483