1. 常见的基本/引用数据类型

基本数据类型: NumberStringBooleanNullundefined。基本数据类型是按值访问的,可以直接操作保存在变量中的实际值。
引用数据类型: Object基本上除了基本数据类型都是引用数据类型,如ArrayFunctionDateRegExpError和自定义封装等Object类型(根类)。

2. 数据类型的判断

typeof, instanceof, constructor, Object.prototype.toString.call()

  1. typeof: 基本类型大部分都能被准确检测并返回正确的字符串(除了 Null 类型,其返回 object 字符串),而引用类型大部分都不能够被准确检测(除了 Function 类型能够准确返回 function 字符串外,其它的都返回了 object 字符串)。
  2. instanceof: instanceof 运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性。即判断对象是否是某一数据类型(如Array)的实例。只有引用数据类型(Array,Function,Object)被精准判断,其他(数值Number,布尔值Boolean,字符串String)等基本数据类型不能被instanceof精准判断

2.1 typeof

 console.log(typeof 7); // numberconsole.log(typeof '7'); // stringconsole.log(typeof false); // booleanconsole.log(typeof [false]); // objectconsole.log(typeof function () {}); // functionconsole.log(typeof {}); // objectconsole.log(typeof undefined); // undefinedconsole.log(typeof null); // object

2.2 instanceof

 console.log(7 instanceof Number); // falseconsole.log('7' instanceof String); // falseconsole.log(false instanceof Boolean); // falseconsole.log([] instanceof Array); //trueconsole.log(function () {} instanceof Function); // trueconsole.log({} instanceof Object); // true// undefined is not a constructor// null is not a constructor

2.3 constructor

     console.log((7).constructor === Number); // 全为trueconsole.log(('7').constructor === String); //console.log(false.constructor === Boolean); //console.log((function () {}).constructor === Function); //console.log(({}).constructor === Object); //console.log(([]).constructor === Array); //function Test() {}Test.prototype = new Array();let f = new Test();console.log(f.constructor === Function) // falseconsole.log(f.constructor === Test)  // falseconsole.log(f.constructor === Array)  // true

2.4 Object.prototype.toString.call()

 let too = Object.prototype.toString;console.log(too.call(7)); // [object Number]console.log(too.call('7')); // [object String]console.log(too.call(false)); // [object Boolean]console.log(too.call([])); // [object Array]console.log(too.call({})); // [object Object]console.log(too.call(function () {})); // [object Function]console.log(too.call(undefined)); // [object Undefined]console.log(too.call(null)); // [object Null]

JavaScript基本/引用数据类型及判断方法相关推荐

  1. js基本数据类型及判断方法

    js的基本数据类型? 七种,Number String Boolean Null Undefined Bigint symbol 如何判断js的数据类型 ? 引申提问:各自的优缺点和应用场景 1. 判 ...

  2. JavaScript 对象的遍历以及判断方法

    遍历对象 var deng = {name: "zhang",sex: 1,weight: 180,__proto__: {lastName: "bing"}} ...

  3. Javascript中引用数据类型

    文章目录 一.Object 1.1 创建对象的两种简单方式: 1.2 获取对象属性的两种方式 二. Array 2.1 JavaScript数组与其他语言不同的地方 2.2 检测数组的几种方法 2.3 ...

  4. 【JavaScript】关于基本数据类型和引用数据类型

    基本数据类型 JavaScript的基本数据类型有: String-字符串类型 Number-整形-----NaN也属于数值型 Boolean-布尔类型 null undefined-undefine ...

  5. JavaScript中基本数据类型和引用数据类型的区别

    1.基本数据类型和引用数据类型 ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型. 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象. 当我们把变量赋值给一个变 ...

  6. js基本数据类型和引用数据类型有什么区别?

    js基本数据类型和引用数据类型有什么区别? 1.基本数据类型和引用数据类型包括哪些? 基本数据类型: 在javascript中,有6种基本数据类型:string.number.boolean.null ...

  7. 【C++ 语言】引用数据类型 ( 引用数据类型定义 | 引用数据类型使用 | 引用类型参数 )

    文章目录 引用类型 引用类型 引用数据类型 : 1. 引用数据类型定义 : 类型名称& 变量名 = 对应类型变量名称 ; //① 定义 普通 类型 变量int a = 8;//② 定义 引用类 ...

  8. (JAVA面试)基本数据类型 引用数据类型详解

    基本数据类型 byte 1字节 short char 2字节 int float 4字节 double long 8字节 引用数据类型 引用类型指向一个对象,不是原始值,指向对象的变量是引用变量 在j ...

  9. 【教3妹学java】2.引用数据类型

    2哥:3妹,昨天教你的java基本数据类型 掌握了吗? 3妹:掌握了,java有8大基本类型(byte,short,char,int,long,float,double,boolean)-- 2哥:我 ...

最新文章

  1. error: Error: No resource found for attribute ‘layout_scrollFlags’ in package‘包名’
  2. python将数据存入数据库_python3 两种方法将数据存入mysql数据库
  3. IDEA 2022.2.1 Beta 2发布:新增支持Java 18、增强JUnit 5的支持
  4. Python之pandas:将dataframe数据写入到xls表格的多个sheet内(防止写入数据循环覆盖sheet表)
  5. Python操作Oracle数据库:cx_Oracle
  6. Odoo(OpenERP)配置文件openerp-server.conf详解
  7. centos6.6 源码安装mysql5.5_CentOS6.x下源码安装MySQL5.5
  8. git push/pull时总需要输入用户名密码的解决方案
  9. 案例 体检套餐管理系统 需求一览 c# 1614099219
  10. Visual Studio Code打开项目
  11. rman命令学习-tina(上)
  12. ADO.NET与抽水的故事 系列三——抽水机—Command
  13. mysql查看前十行_head 命令 读取文件的前n行,默认查看文件的前十行
  14. JAVA 阶乘 n!
  15. 虚拟机局域网拓扑图_利用 VMWare 搭建随机拓扑网络
  16. 没有 本地计算机策略组,win10家庭版没有本地组策略编辑器怎么办
  17. Java生成无限制带参小程序码
  18. 什么是SaaS系统,谈谈SaaS的好处
  19. 开始暂停按钮实现图片随机切换并显示在指定图像框内
  20. 注册服务号、订阅号流程

热门文章

  1. 深入dos编程_计算机编程能给孩子带来什么?
  2. Vue跨域配置proxyTable中pathRewrite用法
  3. Word中插入图片不清晰、分辨率较低的问题解决方案(VISIO\MATLAB)
  4. .net mvc html访问数据库,ASP.NET中新建MVC项目并连接SqlServer数据库实现增删改查
  5. springboot+vue+nodejs休闲娱乐电玩城网上售票系统java
  6. Android 笔记 surfaceView textureView
  7. 医院信息化-3 医院场景的评测和标准
  8. CAD图纸编辑完成后保存成PDF格式怎么操作?
  9. 多角度理解sigmoid,relu和tanh激活函数
  10. Python opencv学习-2读取视频,存视频,设置视频大小