鸿蒙开发中,判断一个数字是否为数字的方法

关键字:是否为NaN JavaScript TypeScript ArkTS 鸿蒙开发 HarmonyOS开发 判断数字类型

正文
开发当中我们经常遇到这样的问题:获取一个字符串转数字的结果。
但是如果这个字符串不是纯数字,使用parseInt( value )方法获取的数字为NaN。
我们想要判断这个数字是否为NaN,只能通过isNaN( )的方法,不能使用 if(value == NaN) 来判断,即使编译器检查不出来错误

根据官方文档我们可以得知isNaN的使用方法以及定义:

isNaN()返回一个布尔值,表示一个值是否为保留值NaN(非数字)。 函数定义如下:
function isNaN(number:number): boolean {
return Number.isNaN(number);
}

以下为一些示例:
在这里插入图片描述
我们想要根据文本框中的内容设置图片的宽度大小,先要获取输入框中的内容

 // 正确示范如下:
 TextInput({placeholder:'图片大小默认显示在这里',text:this.pictureWidth.toFixed()})
          .backgroundColor('gray')
          .width(280)
          .type(InputType.Number)
          .onChange( value  =>{
          
            // value是字符串类型,parseInt()将其转换为数字
            let intValue: number = parseInt(value) 
            
            // 以下为判断是否为数字
            if (isNaN(intValue)) {  // 此处使用isNaN()方法返回一个布尔值
              this.pictureWidth = 0
            }else {
              this.pictureWidth = intValue
            }
          })

如果我们将转换数字的方法替换为:

            if(typeof(parseInt(value)) === 'number'){
            }

或者

            if(parseInt(value) == NaN){
            }

编译器均不会报错,但是还是无法准确判断出数字是否真的是NaN
在这里插入图片描述
在JavaScript中,NaN(Not a Number)是一个特殊的值,表示非数字。在鸿蒙开发当中使用的ArkTS也具有类似的性质。当一个数字被赋值为NaN后,它将无法再被改变。这是因为NaN具有一些特殊的性质:

  1. 唯一性:NaN是唯一一个不等于自身的值。任何比较操作符(如==、!=、=、!)都会返回false,包括NaN与自身进行比较。
  2. 不变性:NaN与其他任何值的运算结果都是NaN。例如,NaN + 5、NaN - 3、NaN * 0等都会得到NaN作为结果。
  3. 无法判断相等性:NaN与任何值(包括NaN本身)的比较都会返回false。例如,NaN === NaN会返回false。

由于这些特殊性质,一旦一个数字被赋值为NaN,它就无法再通过常规的算术运算或比较操作来改变其值了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yoimia酱~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值