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

  • 相关阅读:
    菜根谭#39
    菜根谭#38
    菜根谭#37
    菜根谭#36
    菜根谭#35
    菜根谭#34
    菜根谭#33
    菜根谭#32
    mysqli的使用
    mysql常用修改创建语句
  • 原文地址:https://www.cnblogs.com/thonrt/p/5899473.html
Copyright © 2011-2022 走看看