HarmonyOS 关于ArkTS中的!使用

我看有这么一个图片描述,当在一个变量前使用两个感叹号!!

就是断言这个对象非null,非undefined,非空

不知道对不对

HarmonyOS有具体的关于感叹号的使用描述么

比如在对象前加一个感叹号!啥意思

在对象前加2个感叹号!!啥意思

HarmonyOS
2024-09-02 11:39:50
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zbw_apple

这是三种使用方式

1、在一个对象前加!

2、在一个对象后加!

3、在一个对象前加!!(俩叹号)

第一种方式,就是逻辑非,如:

!0 = true,

!1=false,

!null=true,

!对象实例=false,

如果变量不是布尔类型,会将变量自动转化为布尔类型,比如null、undefined、数字0和空字符串取反都为true,其余都为false。

第二种方式,是非空断言运算符,详见

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/introduction-to-arkts-V5#非空断言运算符

作用是对一个可能为空的值做断言,断定加!的结果一定不为空,要么是值,要么是默认值,可以看下案例代码

第三种方式,俩叹号是个小技巧,!表示运算符“非",如果变量不是布尔类型,会将变量自动转化为布尔类型,再取非,那么用两个!!就可以将变量转化为对应布尔值,举个例子,你获取了一个值x,!!x后为真,那么有三种情况

1、如果x是数值类型:表示不是0,且有确定含义的值(包括无穷大)

2、如果x是字符串:表示长度大于0的字符串

3、如果x是数组,对象,函数:只能表示不是undefined或null

场景:当从服务端获取的用户名有效、年龄大于0就展示

可以这么写

if(!!name && !!age){ 
.... 
}
  • 1.
  • 2.
  • 3.

更简化

分享
微博
QQ
微信
回复
2024-09-02 18:01:18
相关问题
HarmonyOS ArkTS关于类型定义
629浏览 • 1回复 待解决
HarmonyOS 关于arkts协议问题
680浏览 • 1回复 待解决
HarmonyOS 关于ArkTS使用Rn搭建问题
1141浏览 • 1回复 待解决
关于HarmonyOS webviewiFrame使用问题
1179浏览 • 1回复 待解决
arkts 关于异步问题
1117浏览 • 1回复 待解决
ArkTS关于反射用法
629浏览 • 1回复 待解决
关于xmlinclude使用问题
8061浏览 • 2回复 待解决
HarmonyOS ArkTS 关于重载实现方式
814浏览 • 1回复 待解决
HarmonyOS 关于仓颉和ArkTS问题
992浏览 • 2回复 待解决
ArkTS类型系统如何使用?
1410浏览 • 1回复 待解决
arktsthis该如何使用
274浏览 • 0回复 待解决
HarmonyOS关于TS转ArkTS语法问题
1397浏览 • 1回复 待解决
HarmonyOS 关于ArkTS UI样式文件疑问
1243浏览 • 1回复 待解决
HarmonyOS 关于ArkTS和TS类型检测
674浏览 • 1回复 待解决
HarmonyOS 关于interface使用
1653浏览 • 1回复 待解决
ArkTS如何使用字典类型对象
1506浏览 • 1回复 待解决
arkts如何使用mqtt协议?
423浏览 • 1回复 待解决
关于onGestureJudgeBegin使用
1282浏览 • 1回复 待解决
HarmonyOS 关于使用@BuilderParam问题
1485浏览 • 1回复 待解决
HarmonyOS关于API使用问题
1403浏览 • 1回复 待解决
为什么ArkTS禁止使用any?
2174浏览 • 1回复 待解决