返回

typeof&instanceof操作符:探秘JavaScript数据类型与实例关系

前端

JavaScript的数据类型之旅

JavaScript拥有七种基本数据类型:

  • 原始类型 :包括Undefined、Null、Boolean、Number、String和Symbol。
  • 引用类型 :Object(包括数组、函数、日期对象等)

typeof操作符:揭示数据类型真面目

typeof操作符用于获取变量的数据类型。对于原始类型,typeof直接返回其类型名称。对于引用类型,typeof始终返回"object",因为引用类型的值都是Object的实例。

instanceof操作符:探索实例归属

instanceof操作符用于判断一个对象是否属于某个类或接口。其语法为:object instanceof constructor ,其中object是要判断的对象,constructor是要判断的类或接口。如果object是constructor的实例,则返回true,否则返回false。

为什么所有引用类型的值都是Object的实例?

JavaScript中,所有引用类型的值都继承自Object类,因此它们都是Object的实例。这意味着引用类型的值不仅具有其自身类型特有属性和方法,还具有Object类提供的公共属性和方法。

示例演示:巧用typeof和instanceof

// 原始类型示例
console.log(typeof undefined); // "undefined"
console.log(typeof null); // "object"  // 特例
console.log(typeof true); // "boolean"
console.log(typeof 10); // "number"
console.log(typeof "Hello"); // "string"
console.log(typeof Symbol("Symbol")); // "symbol"

// 引用类型示例
const person = { name: "John Doe" };
console.log(typeof person); // "object"
const arr = [1, 2, 3];
console.log(typeof arr); // "object"
const func = function() { };
console.log(typeof func); // "function"

// instanceof示例
console.log(person instanceof Object); // true
console.log(arr instanceof Array); // true
console.log(func instanceof Function); // true

结语

通过typeof和instanceof操作符,我们可以深入理解JavaScript数据类型和实例的关系。掌握这些操作符的使用,将帮助我们写出更健壮、更灵活的代码。

文章到这里就结束了。感谢您的阅读!