ArkTS中的typeof与instanceof使用说明
DevEco Studio 版本:DevEco Studio NEXT Developer Preview2
HarmonyOS API 版本:4.1.0(11)
ArkTS 中的 typeof 与 instanceof 使用说明
开发过程中遇到判断一个变量是否是 string 类型,先看下面一处代码:
1 | let url: string | PixelMap | Resource | undefined = "xxx.xxx"; |
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 对象的具体类型。
相关文章
ArkTS中的typeof与instanceof使用说明
https://denchopen.github.io/blog/2024/04/30/鸿蒙-ArkTS中的typeof与instanceof使用说明/