zoukankan      html  css  js  c++  java
  • js 变量类型

    变量类型分为:基础类型和引用类型

    基础类型:boolean, string, number, null, undefined, symbol

    引用类型: array, object

    • typeof: 判断变量的类型
    • instanceof:判断某个对象是否是另外一个对象的实例

    主要还是理解这两个判断的不同之处,不能死记硬背。

    首先清楚地知道变量类型,基础类型和引用类型。

    typeof:

    数据类型通过typeof判断的结果如下:

    类型 结果
    undefined "undefined"
    Boolean "boolean"
    String "string"
    Number "number"
    Symbol "symbol"
    null "object"(历史遗留问题)
    函数对象 "function"
    object,array,window... "object"

    instanceof:  

    首先理解一句话,在js里,一切(引用类型)都是对象。

    然后看下instanceof的判断规则: A instanceof B

    沿着A的__proto__这条线找,同时沿着B的prototype这条线找,如果出现同一个引用就返回true. 如果到终点还未重合就返回false

    很容易理解吧。那么

    var fn = function () { };
    console.log(fn instanceof Object);//true

    举例子理解下Instanceof:

    let s1 = new String("s");
    typeof s1  === "object"   //s1是String的实例化对象
    s1 instanceof String   // true

    那再看下这个例子:

    let s2 = "s";
    typeof s2 === "string"
    s2 instanceof String //false

    这里为什么是false呢?

    这里就要深刻理解typeof和instanceof的通过了。

    s2只是个数据类型的值,并不是String的实例化对象

    再看下null 和 undefined的不同之处:

    • null == undifined (true) ; null === undefined (false)
    •  typeof null; //object               typeof:undefined; //undifined
    • null参与计算时会自动转换为0,undefined不会转换

      123 + null ; //123

      123 + undefined; //NAN

  • 相关阅读:
    为什么你改了我还看不见?
    一条SQL更新语句是如何执行的?
    一条SQL查询语句是如何执行的?
    为什么学习mysql
    读书并不只是向一个方向前进——《代码之外的生存指南》
    RabbitMQ在C#中的使用
    RFID技术与条形码技术的对比
    射频识别技术RFID
    通过IIS不能连接远程数据库的问题
    老板不断加需求、改需求的四种应对方法
  • 原文地址:https://www.cnblogs.com/thonrt/p/5899473.html
Copyright © 2011-2022 走看看