首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js中怎么看变量的类型的

在JavaScript中,查看变量类型有多种方法,以下是一些常用的方式:

1. typeof 操作符

typeof 是一个一元操作符,用于返回一个字符串,表示未经计算的操作数的类型。

代码语言:txt
复制
let num = 123;
console.log(typeof num); // "number"

let str = "Hello";
console.log(typeof str); // "string"

let bool = true;
console.log(typeof bool); // "boolean"

let obj = { key: "value" };
console.log(typeof obj); // "object"

let arr = [1, 2, 3];
console.log(typeof arr); // "object" 注意:数组也是对象

let nil = null;
console.log(typeof nil); // "object" 注意:这是一个历史遗留问题

let und;
console.log(typeof und); // "undefined"

2. instanceof 操作符

instanceof 用于测试构造函数的 prototype 属性是否出现在对象的原型链中的任何位置。

代码语言:txt
复制
let arr = [1, 2, 3];
console.log(arr instanceof Array); // true

let date = new Date();
console.log(date instanceof Date); // true

3. Object.prototype.toString.call()

这种方法可以准确地返回变量的类型。

代码语言:txt
复制
function getType(variable) {
  return Object.prototype.toString.call(variable).slice(8, -1);
}

console.log(getType(123)); // "Number"
console.log(getType("Hello")); // "String"
console.log(getType(true)); // "Boolean"
console.log(getType({})); // "Object"
console.log(getType([])); // "Array"
console.log(getType(null)); // "Null"
console.log(getType(undefined)); // "Undefined"

优势与应用场景

  • typeof: 简单快速,适用于基本类型(number, string, boolean, undefined)的检查。
  • instanceof: 适合用于检查对象是否是某个特定构造函数的实例,常用于自定义对象和内置对象的类型检查。
  • Object.prototype.toString.call(): 最准确的方法,可以区分所有的内置类型,包括 nullundefined

可能遇到的问题及解决方法

  1. 误判 null 为对象:
    • 使用 typeof null 会返回 "object",这是一个历史遗留问题。应使用 Object.prototype.toString.call() 来避免这个问题。
  • 区分数组和普通对象:
    • 使用 Array.isArray() 方法可以准确判断一个变量是否为数组。
    • 使用 Array.isArray() 方法可以准确判断一个变量是否为数组。

通过这些方法,你可以有效地在JavaScript中检查和区分不同的数据类型。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

47秒

js中的睡眠排序

15.5K
11分10秒

JavaScript教程-08-JS的变量2

11分33秒

JavaScript教程-07-JS的变量1

1分14秒

C语言 | 通过指向结构体变量的指针变量输出结构体变量中的信息

24分18秒

JavaScript教程-12-JS的数据类型

10分41秒

011_尚硅谷_爬虫_查看变量的数据类型

7分6秒

19 - 尚硅谷-RBAC权限实战-JS变量的作用域.avi

11分42秒

55.尚硅谷_JS基础_返回值的类型

4分52秒

023_尚硅谷_Scala_变量和数据类型(十一)_Unit类型的源码实现

6分4秒

06.分类型的ListView中播放视频.avi

10分49秒

11.尚硅谷_JS高级_函数中的this.avi

6分15秒

190-尚硅谷-Scala核心编程-模式中的变量.avi

领券