如何优雅的判断 js 的所有类型?

Crq
Crq
管理员
1415
文章
0
粉丝
Linux教程评论3字数 397阅读1分19秒阅读模式
摘要在 JavaScript 中,可以使用 typeof 操作符来判断一个变量的数据类型。但是,对于一些特殊的数据类型,例如 null 和 array,typeof 操作符不能正确识别...

JS的基本类型共有七种:bigInt(bigInt是一种内置对象,是处symbol外的第二个内置类型)、number、string、boolen、symbol、undefined、null。复杂数据类型有对象(object)包括基本的对象、函数(Function)、数组(Array)和内置对象(Date等)。

如何优雅的判断 js 的所有类型?

在 JavaScript 中,可以使用 typeof 操作符来判断一个变量的数据类型。但是,对于一些特殊的数据类型,例如 null 和 array,typeof 操作符不能正确识别。
因此,最佳做法是使用Object.prototype.toString.call() 方法来判断一个变量的数据类型。该方法返回一个字符串,表示该变量的类型,可以通过分析该字符串来判断变量的数据类型。

下面是一个示例函数,用于优雅地判断 JavaScript 中的所有类型:

javascriptCopy codefunction getType(obj) {
  return Object.prototype.toString.call(obj).slice(8, -1);
}

然后,您可以使用该函数来判断变量的数据类型:

javascriptCopy codelet num = 123;
console.log(getType(num)); // "Number"
let str = "Hello World";
console.log(getType(str)); // "String"
let arr = [1, 2, 3];
console.log(getType(arr)); // "Array"
let obj = { name: "John Doe" };
console.log(getType(obj)); // "Object"
let func = function() {};
console.log(getType(func)); // "Function"
let n = null;
console.log(getType(n)); // "Null"
let u = undefined;
console.log(getType(u)); // "Undefined"

如果您需要更细粒度的数据类型判断,比如判断是否是数组、对象等,则可以使用以下方法:

javascriptCopy codelet num = 123;
console.log(Array.isArray(num)); // false
console.log(typeof num === 'object'); // false
console.log(num instanceof Object); // false
let arr = [1, 2, 3];
console.log(Array.isArray(arr)); // true
console.log(typeof arr === 'object'); // true
console.log(arr instanceof Object); // true
let obj = { name: "John Doe" };
console.log(Array.isArray(obj)); // false
console.log(typeof obj === 'object'); // true
console.log(obj instanceof Object); // true

weinxin
我的微信
微信号已复制
我的微信
这是我的微信扫一扫
 
Crq
  • 本文由 Crq 发表于2025年1月16日 03:07:56
  • 转载请注明:https://www.cncrq.com/12624.html
cp 快捷命令:复制文件到多个目录 Linux教程

cp 快捷命令:复制文件到多个目录

在学习 Linux 的过程中,对于新手而言总是会使用几个命令来完成一个简单的任务。对正在熟悉使用终端的人这是很容易理解的行为。然而,如果你想要成为一个老手,学习我说的“快捷命令”会...
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证