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

基础类型: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

js 变量类型的更多相关文章

  1. js变量类型详解

    <html> <title>js变量类型详解</title> <meta http-equiv="content-type" conten ...

  2. js变量类型和计算

    # js入门基础-变量类型和计算 ` --首先由于我使用了一个不太合格的markdown来编写来文章,所以在移动端阅读不要太方便,建议移动端使用横屏模式或pc端阅读,当然如果你有平板那是最好的. -- ...

  3. JS变量类型与计算

    一.题目 1.JS中使用typeof能得到哪些类型? 2.何时使用===何时使用==? 3.JS中有哪些内置函数? 4.JS变量按照存储方式区分为哪些类型,并描述其特点? 5.如何理解JSON? 知识 ...

  4. js变量类型及检查

    一.变量的类型 JavaScript 有六种数据类型.主要的类型有 Number.String.object 以及 Boolean 类型,其他两种类型为 null 和 undefined.var ob ...

  5. Js变量类型

    值类型和引用类型 值类型(基本类型):5种,Number String Boolean null undefined var a=10; var b=a; a=2; console.log(b); a ...

  6. JS 变量类型互相转换

    转载自:http://zhaizhiyuan.blog.163.com/blog/static/1897672632009093147268/ Java中几种常用的数据类型之间转换方法:  1. sh ...

  7. js变量类型判断 严格通用 Object.prototype.toString.call()

    Object.prototype.toString.call()判断结果: Object.prototype.toString.call(true) "[object Boolean]&qu ...

  8. js面试题知识点全解(一变量类型和计算)

    1.js中使用typeof能得到哪些类型 2.何时使用===和== 3.js中的内置函数 4.js变量按存储方式区分为哪些类型,并描述其特点 5.如何理解json 以下对这些问题的知识点做一些总结: ...

  9. js课程 1-3 Javascript变量类型详解

    js课程 1-3  Javascript变量类型详解 一.总结 一句话总结:js对象点(属性方法),json对象冒号(属性方法).属性和方法区别只有一个括号. 1.json对象中的函数的使用? 函数名 ...

随机推荐

  1. python 调用c++类方法(1)

    myTest.cpp: #include<iostream> #include<vector> class MyTest { public: MyTest(); ~MyTest ...

  2. Python locals() 的陷阱

    转载自https://segmentfault.com/a/1190000012724861 在工作中, 有时候会遇到一种情况: 动态地进行变量赋值, 不管是局部变量还是全局变量, 在我们绞尽脑汁的时 ...

  3. delphi 进程通讯之WM_COPYDATA 发送程序(SendData.exe) 可用

    http://www.delphitop.com/html/wangluo/1529.html delphi 进程通讯之WM_COPYDATA 发送程序(SendData.exe) 作者:admin ...

  4. 正则表达式——Unicode 匹配规则

      一般来说,数字字符解释[0-9],单词字符就是[0-9a-zA-Z_],空白字符则包括空格.回车等字符,但这是 ASCII 编码中的情况,在 Unicode 编码中并非如此.   因为包括了多种语 ...

  5. Linux(Ubuntu)常用命令 & vim基本操作

    Linux先知: Linux历史: 关于这个我就不再多说了,其实是一个很有意思的故事串,网上找下一大堆. 类Unix系统目录结构: ubuntu没有盘符这个概念,只有一个根目录/,所有文件都在它下面 ...

  6. jmeter常用性能监听器分析

    jmeter中提供了很多性能数据的监听器,我们通过监听器可以来分析性能瓶颈 本文以500线程的阶梯加压测试结果来描述图表. 常用监听器 1:Transactions per Second 监听动态TP ...

  7. 【EWM系列】SAP EWM凭证对象表概览

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[EWM系列]SAP EWM凭证对象表概览   ...

  8. Chapter02 第四节 函数

    2.4 函数 2.4.1 有返回值的函数 函数定义.函数原型.函数调用 函数定义即定义一个函数:形如 :double sqrt(double x){····} 函数调用即调用这个函数,形如 :doub ...

  9. Mac021--编辑软件

    一.思维导图MindNode 知乎Mac常用的思维导图:https://zhuanlan.zhihu.com/p/37768277 MindNode下载地址:https://macblcom.ctfi ...

  10. VS2017使用dotnet命令

    添加引用Microsoft.EntityFrameworkCore.Tools 添加引用后提示未找到命令“dotnet ef”向csprog文件添加如下节点 <ItemGroup> < ...