• javaScript中对typeof 和 instanceof 的使用及理解


    F&Q:

    Q1:instanceof 和 typeof 是什么?

    用于判断数据类型。

    Q2:它们能做什么?

    根据数据类型判断进行一些逻辑编码。如:当判断出该参数类型为 number 则转换成 String 放入数组。

    Q3:为什么说 typeof 一般用于基本类型  instanceof 一般用于引用类型?

    因为便利。所以有了以下栗子:

    //typeof 一般用于基本类型
    var name = "bob",     
    age = 13;
    alert(typeof(name)); //String
    alert(typeof(age)); //Number
    
    //instanceof 一般用于引用类型
    var obj={};
    var arr=[];
    alert(obj instanceof Object); //true
    alert(arr instanceof Array); //true

    反面栗子如下:

    如果引用类型如果用typeof 则会显示object类型,而这样区分不了这个参数是对象还是数组还是其他的引用类型。

    如果基本类型用instanceof,则必须封装成对象进行比较。

    例:var name = "bob"; name.instanceof(String);  // 现在的name是基本类型。而String是引用类型。结果肯定是false。

    以上更改为:var name = new String("bob") ; name.instanceof(String);  //true 引用类型进行比较

    以上代码会将其转换为引用类型在进行比较。这样使用繁琐还不如typeof来的快捷。

    下面讨论下关于typeof 以及typeof null /undefined 的差异--------2018/5/13更新

    //这里是 F12控制台打出的信息  
    // 注:typeof 是可以不用给括号的。typeof 并不是方法而是一个一元运算符!!! 括号只是方便。
    typeof null
    "object"
    typeof undefined
    "undefined"
    个人理解如下: null 表示对象不存在。 js 认为null 是一个不存在对象的占位符,所以typeOf null 就是object
    undefinde 表示:声明的变量未定义。
    如果两个需要进行比较,就可以使用以下方式。

    if(typeof null === typeof undefined) //false

    路漫漫其修远~

  • 相关阅读:
    一分钟教你解决前端分流问题
    win7 mysql 数据库轻松实现数据库定时备份
    mysql 修改密码
    what is yaml ?
    php实现监控在线服务应用程序小栗子
    Python装饰器小代码
    2,构造代码块
    1,匿名对象,封装
    7,random
    测试错题
  • 原文地址:https://www.cnblogs.com/lanSeGeDiao/p/5730140.html
Copyright © 2020-2023  润新知