js确定数据类型typeof与instanceof

简介: js确定数据类型typeof与instanceof


js高级程序设计

1. 确定数据的类型

typeof

因为ECMAScript 的类型系系统是松散的,所以需要一种手段来确定任意变量的数据类型.typeOf 这个操作符 就是为此而生的.

typeof 最适合用来判断一个变量是否为原始类型. 更确切地说,他是判断一个变量是否为"字符串","数值","布尔值","未定义的"的最好方式

typeof 虽然对原始值有作用,但他对引用值的用处不大,

 let a = "你好啊";  // string
 let b = 123;     // string
 let c = function add() { console.log("function"); } // function
 let f = true; // boolean
 let g = undefined; // undefined
 let h = null; // object
 let j = new Object()  // object
 ​
 console.log(typeof a); // string
 console.log(typeof b); // string
 console.log(typeof c); // function
 console.log(typeof f); //boolean
 console.log(typeof g); // undefined
 console.log(typeof h); // object
 console.log(typeof j); // object

注意:

调用typeof null 返回 Object.这是因为特殊值null 被认为是一个对空对象的引用

instanceof

instanceof 是一个 JavaScript 运算符,用于判断一个对象是否是另一个对象的实例。

语法是:`object instanceof constructor

object 是要检测的对象,constructor 是某个构造函数。

例如:

 var arr = []; 
 arr instanceof Array; // true
 arr instanceof Object; // true 
 arr instanceof Function; // false

instanceof 的内部实现机制是通过查找对象的原型链上是否有构造函数的 prototype 属性所指向的对象。

两者的区别

typeof 和 instanceof 都是用来判断数据类型的方法,但它们有以下区别:

  • typeof 会返回一个变量的基本类型,例如 ‘number’‘string’‘boolean’ 等。instanceof 会返回一个布尔值,表示一个对象是否是另一个对象的实例。
  • typeof 主要用来判断基础数据类型,instanceof 则是用来判断引用数据类型
  • typeof 是根据数据在存储单元中的类型标签来判断数据的类型,instanceof 则是根据函数的 prototype 属性值是否存在于对象的原型链上来判断数据的类型。
  • typeof 对于 null 和 数组 会返回 ‘object’,对于函数会返回 ‘function’。instanceof 对于 null 会返回 false,对于数组和函数会返回 true。


目录
相关文章
|
3月前
|
存储 JavaScript 对象存储
js检测数据类型有那些方法
js检测数据类型有那些方法
142 59
|
6天前
|
存储 JavaScript 前端开发
JavaScript中的数据类型以及存储上的差别
通过本文的介绍,希望您能够深入理解JavaScript中的数据类型及其存储差别,并在实际编程中灵活运用这些知识,以提高代码的性能和稳定性。
27 3
|
1月前
|
存储 JavaScript 前端开发
js中的数据类型
JavaScript 中的数据类型包括五种基本类型(String、Number、Undefined、Boolean、Null)和三种引用类型(Object、Array、Function,以及ES6新增的Symbol)。基本类型直接存储值,引用类型存储的是指向实际数据的内存地址。了解它们的区别对于掌握 JavaScript 的变量赋值和函数传参至关重要。
21 1
|
2月前
|
存储 JavaScript 前端开发
JavaScript 数据类型详解:基本类型与引用类型的区别及其检测方法
JavaScript 数据类型分为基本数据类型和引用数据类型。基本数据类型(如 string、number 等)具有不可变性,按值访问,存储在栈内存中。引用数据类型(如 Object、Array 等)存储在堆内存中,按引用访问,值是可变的。本文深入探讨了这两种数据类型的特性、存储方式、以及检测数据类型的两种常用方法——typeof 和 instanceof,帮助开发者更好地理解 JavaScript 内存模型和类型检测机制。
109 0
JavaScript 数据类型详解:基本类型与引用类型的区别及其检测方法
|
2月前
|
JavaScript 前端开发 开发者
【干货拿走】JavaScript中最全的数据类型判断方法!!!!
【干货拿走】JavaScript中最全的数据类型判断方法!!!!
27 1
|
2月前
|
存储 JavaScript 前端开发
JavaScript数据类型全解:编写通用函数,精准判断各种数据类型
JavaScript数据类型全解:编写通用函数,精准判断各种数据类型
45 0
|
3月前
|
JavaScript 前端开发
JavaScript基础知识-基本数据类型和引用数据类型
关于JavaScript基础知识的文章,主要介绍了基本数据类型和引用数据类型。
44 2
JavaScript基础知识-基本数据类型和引用数据类型
|
3月前
|
存储 前端开发 JavaScript
前端基础(三)_JavaScript数据类型(基本数据类型、复杂数据类型)
本文详细介绍了JavaScript中的数据类型,包括基本数据类型(Number、String、Boolean、Undefined、Null)和复杂数据类型(Object),并解释了如何使用`typeof`操作符来识别变量的数据类型。同时,还讨论了对象、函数和数组等复杂数据类型的使用方式。
66 2
|
3月前
|
机器学习/深度学习 JavaScript 前端开发
JavaScript typeof, null, 和 undefined
JavaScript typeof, null, 和 undefined
59 4
|
4月前
|
开发者 图形学 开发工具
Unity编辑器神级扩展攻略:从批量操作到定制Inspector界面,手把手教你编写高效开发工具,解锁编辑器隐藏潜能
【8月更文挑战第31天】Unity是一款强大的游戏开发引擎,支持多平台发布与高度可定制的编辑器环境。通过自定义编辑器工具,开发者能显著提升工作效率。本文介绍如何使用C#脚本扩展Unity编辑器功能,包括批量调整游戏对象位置、创建自定义Inspector界面及项目统计窗口等实用工具,并提供具体示例代码。理解并应用这些技巧,可大幅优化开发流程,提高生产力。
435 1