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. 测试机型不够?把玩家反馈过的问题机型,都测个遍
  2. 基本数据类型_JavaScript基本数据类型
  3. MySQL教程(一)—— 数据库设计
  4. 书单推荐:六本好书带你入门数据科学
  5. sun.misc.BASE64Encoder 不建议使用java.sun自带包中的内容
  6. 计算机中如何取消家长控制用户,电脑怎么设置家长控制? 家长控制功能的使用技巧...
  7. poj 2479 Maximum sum(递推)
  8. 日志分析工具Awstats实战之Nginx篇-分析结果静态化
  9. 一个有情怀的PPT模板下载网站
  10. QT-数据可视化大屏1
  11. mapgis坡度分析_基于MAPGIS的空间分析.pdf
  12. 小米冲高端?差了几口气
  13. win10 你没有足够的权限执行此操作
  14. Python爬虫——用正则表达式爬取小说内容
  15. Java-常用实现分页查询
  16. python3使用staf问题_python调用staf自动化框架的方法
  17. Windows下使用chkdsk修复移动硬盘/磁盘
  18. 联想拯救者y7000p加内存条_联想 拯救者Y7000P 如何插入SD卡?
  19. realtek没有禁用前面板_为何我realtek HD没有禁用前面板检测选项?
  20. PS给照片添加镜头梦幻光斑动态图片效果

热门文章

  1. 新一配:区块链的应用【转载】
  2. 和技术一号位来一场深度对谈
  3. keySet()和entrySet()的区别
  4. web练习一——qq注册面开发(四)源码
  5. 由奇趣走向用户体验,AR跨界营销要怎么玩?
  6. 游戏陪玩平台系统启动页黑屏情况,该如何解决?
  7. 女人 男人 顾客 商家
  8. 常用js库和框架(jsPlumb)
  9. 环信PaaS+SaaS齐头并进,打造最具生命力企业服务
  10. 服务器和桌面区别,有问有答:桌面级处理器和服务器处理器的区别是什么?