ArkTS中的typeof与instanceof使用说明

DevEco Studio 版本:DevEco Studio NEXT Developer Preview2
HarmonyOS API 版本:4.1.0(11)

ArkTS 中的 typeof 与 instanceof 使用说明

开发过程中遇到判断一个变量是否是 string 类型,先看下面一处代码:

1
2
3
4
5
6
7
let url: string | PixelMap | Resource | undefined = "xxx.xxx";
if ("string" == typeof url) {
// this is true.
}
if (url instanceof String) {
// this is false.
}

0x01 typeof

typeof 操作符用于检测基本数据类型(如:string, number, boolean, undefined, function, object 等),返回一个表示未定义变量类型的字符串。对于函数对象,它将返回“function”。对于 object 对象的具体类型(如 Array, Date 等)则无法判断。例如,对于数组,typeof 会返回“object”,无法区分是数组还是其他对象。需要注意的是,typeof对 null 返回的是“object”。

0x02 instanceof

instanceof操作符主要用于检测对象是否由特定的构造函数创建,因此可以用来判断对象的具体类型。例如,如果你有一个 Array 对象,你可以使用 instanceof 来检测它是否是一个数组:let arr = []; console.log(arr instanceof Array); // 输出:true。 instanceof 有一个限制,它只能用于对象,不能用于基本数据类型,而且它要求对象是通过构造函数创建的。对于不是通过构造函数创建的对象,instanceof 将返回 false。

0x03 总结

typeof 操作符用于检测基本数据类型,instanceof操作符用来判断 object 对象的具体类型。

相关文章

https://developer.baidu.com/article/detail.html?id=3318356

作者

Dench

发布于

2024-04-30

更新于

2024-04-30

许可协议

CC BY-NC-SA 4.0

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×