JavaScript基本/引用数据类型及判断方法
1. 常见的基本/引用数据类型
基本数据类型: Number
、String
、Boolean
、Null
和undefined
。基本数据类型是按值访问的,可以直接操作保存在变量中的实际值。
引用数据类型: Object
基本上除了基本数据类型都是引用数据类型,如Array
、Function
、Date
、RegExp
、Erro
r和自定义封装类
等Object类型(根类)。
2. 数据类型的判断
typeof, instanceof, constructor, Object.prototype.toString.call()
typeof:
基本类型大部分都能被准确检测并返回正确的字符串(除了 Null 类型
,其返回 object 字符串),而引用类型大部分都不能够被准确检测(除了 Function 类型能够准确返回 function 字符串外
,其它的都返回了 object 字符串)。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基本/引用数据类型及判断方法相关推荐
- js基本数据类型及判断方法
js的基本数据类型? 七种,Number String Boolean Null Undefined Bigint symbol 如何判断js的数据类型 ? 引申提问:各自的优缺点和应用场景 1. 判 ...
- JavaScript 对象的遍历以及判断方法
遍历对象 var deng = {name: "zhang",sex: 1,weight: 180,__proto__: {lastName: "bing"}} ...
- Javascript中引用数据类型
文章目录 一.Object 1.1 创建对象的两种简单方式: 1.2 获取对象属性的两种方式 二. Array 2.1 JavaScript数组与其他语言不同的地方 2.2 检测数组的几种方法 2.3 ...
- 【JavaScript】关于基本数据类型和引用数据类型
基本数据类型 JavaScript的基本数据类型有: String-字符串类型 Number-整形-----NaN也属于数值型 Boolean-布尔类型 null undefined-undefine ...
- JavaScript中基本数据类型和引用数据类型的区别
1.基本数据类型和引用数据类型 ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型. 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象. 当我们把变量赋值给一个变 ...
- js基本数据类型和引用数据类型有什么区别?
js基本数据类型和引用数据类型有什么区别? 1.基本数据类型和引用数据类型包括哪些? 基本数据类型: 在javascript中,有6种基本数据类型:string.number.boolean.null ...
- 【C++ 语言】引用数据类型 ( 引用数据类型定义 | 引用数据类型使用 | 引用类型参数 )
文章目录 引用类型 引用类型 引用数据类型 : 1. 引用数据类型定义 : 类型名称& 变量名 = 对应类型变量名称 ; //① 定义 普通 类型 变量int a = 8;//② 定义 引用类 ...
- (JAVA面试)基本数据类型 引用数据类型详解
基本数据类型 byte 1字节 short char 2字节 int float 4字节 double long 8字节 引用数据类型 引用类型指向一个对象,不是原始值,指向对象的变量是引用变量 在j ...
- 【教3妹学java】2.引用数据类型
2哥:3妹,昨天教你的java基本数据类型 掌握了吗? 3妹:掌握了,java有8大基本类型(byte,short,char,int,long,float,double,boolean)-- 2哥:我 ...
最新文章
- error: Error: No resource found for attribute ‘layout_scrollFlags’ in package‘包名’
- python将数据存入数据库_python3 两种方法将数据存入mysql数据库
- IDEA 2022.2.1 Beta 2发布:新增支持Java 18、增强JUnit 5的支持
- Python之pandas:将dataframe数据写入到xls表格的多个sheet内(防止写入数据循环覆盖sheet表)
- Python操作Oracle数据库:cx_Oracle
- Odoo(OpenERP)配置文件openerp-server.conf详解
- centos6.6 源码安装mysql5.5_CentOS6.x下源码安装MySQL5.5
- git push/pull时总需要输入用户名密码的解决方案
- 案例 体检套餐管理系统 需求一览 c# 1614099219
- Visual Studio Code打开项目
- rman命令学习-tina(上)
- ADO.NET与抽水的故事 系列三——抽水机—Command
- mysql查看前十行_head 命令 读取文件的前n行,默认查看文件的前十行
- JAVA 阶乘 n!
- 虚拟机局域网拓扑图_利用 VMWare 搭建随机拓扑网络
- 没有 本地计算机策略组,win10家庭版没有本地组策略编辑器怎么办
- Java生成无限制带参小程序码
- 什么是SaaS系统,谈谈SaaS的好处
- 开始暂停按钮实现图片随机切换并显示在指定图像框内
- 注册服务号、订阅号流程
热门文章
- 深入dos编程_计算机编程能给孩子带来什么?
- Vue跨域配置proxyTable中pathRewrite用法
- Word中插入图片不清晰、分辨率较低的问题解决方案(VISIO\MATLAB)
- .net mvc html访问数据库,ASP.NET中新建MVC项目并连接SqlServer数据库实现增删改查
- springboot+vue+nodejs休闲娱乐电玩城网上售票系统java
- Android 笔记 surfaceView textureView
- 医院信息化-3 医院场景的评测和标准
- CAD图纸编辑完成后保存成PDF格式怎么操作?
- 多角度理解sigmoid,relu和tanh激活函数
- Python opencv学习-2读取视频,存视频,设置视频大小