首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当操作数之一为NaN时,哪个算术运算符不能产生NaN结果?

当操作数之一为NaN时,哪个算术运算符不能产生NaN结果?
EN

Stack Overflow用户
提问于 2022-01-21 21:16:28
回答 2查看 50关注 0票数 -3

只是为了兴趣。据我们所知,NaN正沿着边计算的方向扩展。

代码语言:javascript
复制
1 + NaN => NaN

有没有能阻止这种扩散的操作员。我的意思是:

代码语言:javascript
复制
<operator> NaN => number

代码语言:javascript
复制
NaN <operator> <operand> => number

代码语言:javascript
复制
<operand> <operator> NaN => number

NaN =>数

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-21 21:18:28

实际上,在Ecmascript中,数字的(**)运算符的定义。在第二个操作数为+0或-0时有一个特例。

https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-numeric-types-number-exponentiate

所以实际上:

代码语言:javascript
复制
console.log(NaN ** 0) // will log 1
票数 0
EN

Stack Overflow用户

发布于 2022-01-21 21:34:13

Javascript有一个检测NaN的内置方法,但是您需要为每个操作数检查这个“可能的数字”。

代码语言:javascript
复制
let possibleNumber = "4f";

console.log(isNaN(Number(possibleNumber)));

possibleNumber = "44";

console.log(isNaN(Number(possibleNumber)));

输出:

代码语言:javascript
复制
true
false

您可以执行一些函数来检查并返回所需的数字。

代码语言:javascript
复制
function checkIfIsNaN(number,numIfTrue,numIfFalse){
    if(isNaN(Number(number))){ return numIfTrue} else{return numIfFalse};
}

console.log(checkIfIsNaN("44",4,10));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70807712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档