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

  • 相关阅读:
    k8s 集群文件共享
    .net core 使用IOptionsXXX读取配置
    docker Dockerfile
    k8s 部署tomcatservice (NodePort通过节点向外提供服务)
    k8s 用Rinetd对外tomcatservice
    k8s 部署应用
    坑爹的matlab除法
    Cygwin/Git与Git Source Control Provider结合时初始目录
    手机电话号码从excel导入的最简单方法
    快捷方式改变电源计划,设置关闭显示器时间
  • 原文地址:https://www.cnblogs.com/thonrt/p/5899473.html
Copyright © 2011-2022 走看看