NaN表示什么?typeof NaN结果是什么?

NaN是Not a Number(不是一个数值)的缩写,它表示储存数据的数据类型。但是它是属于数值类型,一般是算术运算执行的。
NaN是怎么形成的,看以下例子:

<script>
    var a,b,c;
    a = false;
    b = "false";
    c = a-b;
    document.write(c);
    //输出 NaN。
</script>

将两个不同的数据类型进行算术运算时,其结果就会出现NaN。

注:
1.在进行我们的加法运算时,输出结果就不会出现NaN,如果有字符串的出现,就会出现我们的字符串拼接。
2.若有NaN参与运算时,此时的结果就会输出NaN。

<script>
    var a,b,c;
    a = NaN;
    b = "false";
    c = a-b;
    document.write(c);
    //输出NaN
</script>

当两个值都为NaN时,NaN会不会等于NaN呢?

<script>
    var a,b;
    a = NaN;
    b = NaN;
    document.write(a = b);
    //输出false
</script>

为什么是false? 因为JavaScript中规定,NaN表示的是非数字,但这个非数字也是不同的,所以在JavaScript中NaN永远不等于NaN。
总结:
1.NaN表示一个非数字,一般是算术运算执行的结果。但NaN是属于数值类型。
2.在执行算术运算时,只要有NaN参与其结果就是NaN。在加法运算时,有字符串参与时就会执行字符串拼接。
3.NaN永远不等于NaN。

那么typeof NaN结果是什么呢?

<script>
        console.log(typeof NaN);
</script>
//输出number

ECMAScript(JavaScript)标准指定 Numbers 是IEEE 754浮点数,其中包含 NaN 作为可能的值 。

ECMA 262 5e第4.3.19节:对应于双精度64位二进制格式IEEE 754值的数值原始值 。

ECMA 262 5e第4.3.23节:NaN数值,即IEEE 754“非数字”值 。

那么, NaN 仍然是一种数字类型,尽管事实上它实际上代表的是非数字:-)

NaN 只是意味着特定值不能在数字类型的限制内表示(尽管可以说所有必须舍入到适合的数字,但 NaN 是一种特殊情况) 。

特定 NaN 不被视为等于另一个 NaN ,因为它们可能是不同的值 。但是, NaN 仍然是数字类型,就像2718或31415一样 。
判断一个变量是不是 NaN 可以用 isNaN()函数

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值