首页 > 编程语言 > 详细

你不知道的 JavaScript 系列中( 13 ) - 特殊数值 零值

时间:2020-05-16 12:17:45      阅读:45      评论:0      收藏:0      [点我收藏+]
JavaScript 有一个常规的 0 和一个 -0
var a = 0/-3; // -0
var b = 0*-3; // -0

 

负零进行字符串转化会返回 0;
(-0).toString(); // 0
-0 + ‘‘; // 0
String(-0); // 0
JSON.stringify(-0); // 0

 

有意思的是,如果反过来将其从字符串转化为数字,得到的结果是准确的:
+‘-0‘; // -0
Number(‘-0‘); // -0
JSON.parse(‘-0‘); // -0

 

负零转化为字符串的结果令人费解,比较操作也是如此
-0 === 0; // true
0 > -0; // false

 

抛开学术上的繁枝褥节,我们为什么需要负零呢?

有些应用程序中的数据需要以级数形式来表示(比如动画帧的移动速度),数字的符号位用来代表其他信息(比如移动的方向)。此时如果一个值为 0 的变量失去了它的符号位,它的方向信息就会丢失。所以保留 0 的符号位可以防止这类事情发生

 

你不知道的 JavaScript 系列中( 13 ) - 特殊数值 零值

原文:https://www.cnblogs.com/wzndkj/p/12898939.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!