高程笔记-关于typeof和instanceof的那些事儿

来源:互联网 发布:js 淘宝左侧 分类导航 编辑:程序博客网 时间:2024/05/16 13:49

好记性不如烂笔记:),简单的区分一下两者

typeof操作符用于判断变量的数据类型,使用typeof会有六种可能的返回:

  1. string、number、boolean、undefined、objectfunction
  2. js的数据类型中简单类型有String、Number、Boolean、Undefined、NULL五种,复杂类型有Object,使用typeof对Object和NULL类型检测都会返回object
  3. 使用typeof返回undefined可能存在两种情况:变量未申明、变量申明了但未初始化。e.g.typeof(aa);//undefined以及var aa;typeof(aa);//undefined所以,显示的初始化变量是明智的,当typeof操作符返回”undefined”值时,说明变量还没有被声明
  4. 函数在ECMAScript中是对象,不是一种数据类型

instanceof用于判断某一变量是否是某个对象的实例,instanceof返回的是true/false

  1. 在后面的面向对象中讲到的instance也可以判断某一对象是否是某一原型对象的实例e.g.alert(person instanceof Person);
  2. 对于类型检测问题,typeof适用于对基本类型的检测,而instanceof适用于对复杂类型检测(具体的引用类型值):
    举栗子:
    alert(person instanceof Object);
    alert(colors instanceof Array);
    alert(pattern instanceof RegExp);
原创粉丝点击