我遇到了一个声明“如果在2012年发布的JavaScript书籍中,从+0中减去-0,结果为-0”。
但是,当我在浏览器中计算+0 - (-0)
时,它会返回0
而不是-0
。我想知道ECMAScript从那时起是否有变化,或者仅仅是书中的错误/错字。
如果这本书提到的是真的,我想听听这部分的解释和阐述。
Book:面向Web开发人员的专业JavaScript,第3版。作者:Nicholas C. Zakas(第3章 - 第63页)
答案 0 :(得分:5)
The book is incorrect.也许这意味着-0 - +0
。从12.7.5开始:
- 两个负零的总和是-0。 两个正零的总和,或两个相反符号的零的总和为+0。
给定数字操作数a和b, a-b始终产生与+( - b)相同的结果。
和12.5.0:
一元运算符将其操作数转换为数字类型,然后将其否定。否定+0会产生-0,而否定-0会产生+0 。
另外,我跳到书中的另一个随机页面,发现了这个:
逗号操作员
逗号运算符允许在单个语句中执行多个操作,如下所示:
var num1=1, num2=2, num3=3;
这不是逗号运算符的实例。两个两个;得到退款。