zoukankan      html  css  js  c++  java
  • JavaScript学习笔记--理解对象

    JavaScript有一句话叫做一切皆对象,这句话看起来就像权力的游戏中Valar Morghulis(凡人皆有一死)一样总有一股哲学味

    怎么理解这句话呢?

    这里我们用到两个运算符来检测数据的类型,分别是typeof 以及instanceof

    1.typeof

    typeof运算符接收一个参数,将返回这个参数的类型,typeof的返回值分别为五种基本类型(那个function也是object)

    var aNum=213;
    console.log(typeof aNum);
    //"number"
    var aString='abc';
    console.log(typeof aString);
    //'string'
    var aFn=function(num){
      return num+1;
    }
    console.log(typeof aFn);
    //function
    console.log(typeof null);
    //object

    由于null实际上是一个空对象,所以这里返回object也是合理的

    2.instanceof

    instanceof用于判断某一个对象是否是所给的构造函数的一个实例,返回值是true或者false

    这里要注意的是,对于基本类型(string、number、 boolean等),使用instanceof始终返回false

    aNum instanceof Number;        //false
    aString instanceof String;        //false
    //...

    对于对象,instanceof返回的总是这个对象所属的构造函数

    function A(num){
      return num+1;
    }
    console.log(a instanceof Function);    //true
    console.log(A instanceof Object);      //true
    var aObj={};
    console.log(aObj instanceof Object);    //true
    var aArr=[];
    console.log(aArr instanceof Array);    //true
    console.log(aArr instanceof Object);    //true

    这里有一个问题,为什么A、aArr既是Function、Array的实例,又是Object的实例?

    这就是一切皆对象的原理,不论是Function,还是String、Array,在JavaScript中它们都是Object

    (本文较为浅显,以后的文章将会更深入的探讨对象以及原型方面的知识)

  • 相关阅读:
    转载 消灭程序员需要百年吗?(重要参考)
    转载的一篇,代码规范
    自改的删除数据库中所有外键语句
    [转]批量禁用外键后,清空表数据
    我的分组分页查询语句
    Yii 分页方法总结
    25个Apache性能优化技巧推荐
    浅谈MindSpore的动态Shape
    C++开发总结 A
    Linux环境下开发常用命令汇总 A
  • 原文地址:https://www.cnblogs.com/sakura-log/p/5548744.html
Copyright © 2011-2022 走看看