• JS中的instanceof和typeof


    原文链接:http://hi.baidu.com/pryzjvvpkkbhjyq/item/440fb91cda5cb90b8ebde43f


    typeof用以获取一个变量的类型

    语法:typeof a 或 typeof(a) 

    一般只能返回如下几个结果:number、boolean、string、function、object、undefined。

    我们可以使用typeof来获取一个变量是否存在,如:if(typeof a != "undefined"){}

    而不要去使用if(a),因为如果a不存在(未声明)则会出错

    对于Array、Null等特殊对象,使用typeof一律返回object,这正是typeof的局限性。

    instanceof用于判断一个变量是否某个对象的实例

    如果我们希望获取一个对象是否是数组,或判断某个变量是否是某个对象的实例则要选择使用instanceof。

    var a=new Array();
    alert(a instanceof Array);//输出true
    alert(a instanceof Object);//输出true,因为Array是object的子类。

    再如:

    function test(){};
    var a=new test();
    alert(a instanceof test);//输出true。

    谈到instanceof,这里顺便插入一个问题,就是function的arguments(一个可以访问函数的所有参数的对象,类似数组,实际上不是数组对象)

    我们大家也许都认为arguments是一个Array,因为其具有数组一样的访问性质及方式

    可以由arguments[n]来访问对应的单个参数的值,并拥有数组长度属性length

    但如果使用instanceof去测试会发现arguments不是一个Array对象,尽管看起来很像。

    function Person(name, sex){
           this.name = name;
           this.sex = sex;
           alert(typeof(arguments)); //输出Object
           alert(arguments instanceof Object); //输出true
           alert(arguments instanceof Array); //输出false
    }
    var person = new Person(); alert(person instanceof Person); //输出true alert(typeof(person)); //输出Object




  • 相关阅读:
    原子核结构壳模型:粒子空穴转换
    第十二周学习总结
    构建之法读书笔记5
    5.21学习总结——android开发实现用户头像的上传
    5.20团队活动
    构建之法读书笔记4
    团队项目第一阶段验收
    HTML+CSS设计个人主页
    C++文件流
    面向对象程序设计_虚函数的应用
  • 原文地址:https://www.cnblogs.com/czf-zone/p/3602432.html
Copyright © 2020-2023  润新知