javascript算术运算溢出
JavaScript 运算 溢出 算术
2023-09-14 08:56:51 时间
js中的算术在溢出overflow,下溢underflow或被0整除时不会报错。
当数字结果超过了数字上限时,结果为一个特殊的无穷大(infinity)值,在js中以Infinity表示;同理,当负数超出了负数表示范围,则结果为负无穷大,在js中用-Infinity表示。
下溢是当运算结果无限接近于0并比js能表示的最小值还小时发生的一种情形。这种情况下,js会返回0;当负数发生下溢时,js韩慧一个特殊的值“负零”,这个负零几乎和正常的零完全一样,一般很少用到负零。
被0整除在js中不报错:只是返回无穷大或负无穷大。但有一个例外,就是0除以0是没有意义的,这种运算结果为一个非数字(not a number)值,yogaNaN表示。无穷大除以无穷大,给任意负数开方或算术运算符与不是数字或无法转换为数字的操作数一起使用时都返回NaN。
js中的NaN有一点特殊:它和任何值都不相同,包括自身。即无法通过x==NaN判断x是否为NaN;相反应该使用x!=x来判断。函数isNaN()与此类似;js中有一个类似的函数isFinite(),在参数不是NaN、Infinity或-Infinity时返回true。
负零值通用有些特殊,它和正零值是相同的,即使使用js的严格相等测试来判断也是相同的。
相关文章
- javascript中的eval函数
- JavaScript操作BOM简单案例
- javascript:history.go(-1);
- [Javascript] Link to Other Objects through the JavaScript Prototype Chain (Object.setPrototypeOf())
- [Javascript] Understanding the difference between .prototype and .__proto__ in JavaScript
- [Javascript] Convert a Callback-Based JavaScript Function to a Promise-Based One
- 实用的JavaScript技巧、窍门和最佳实践
- [Javascript] Filter out Duplicates from Flat JavaScript Array with array.filter / reduce / Set
- [Javascript] Understanding the difference between .prototype and .__proto__ in JavaScript
- [Javascript] Wait for the Fastest JavaScript Promise to Be Fulfilled with Promise.any()
- [Javascript] Wait for Multiple JavaScript Promises to Settle with Promise.allSettled()
- [Javascript] Hide Properties from Showing Up in "for ... in" Loops in JavaScript
- [Javascript] Conditionally spread entries to a JavaScript object
- [Javascript] Use JavaScript's for-in Loop on Objects with Prototypes
- [Javascript] Understanding the .constructor property on JavaScript Objects
- [Javascript Crocks] Apply a function in a Maybe context to Maybe inputs (curry & ap & liftA2)
- [Javascript Crocks] Create a Maybe with a `safe` Utility Function
- [Javascript] Proper use of console.assert in JavaScript
- JavaScript 内的 this 指向
- 从零开始学_JavaScript_系列(19)——js系列<6>闭包
- JavaScript学习总结(四)——this、原型链、javascript面向对象
- JavaScript--eval
- web前端Javascript开发学习之JavaScript中的预编译如何进行