我一直在嘗試做以下事情 - 將正數改爲負數。Javascript:將正數改爲負數?
看來有很多方法可以做到這一點。有標準的
x *= -1
或者只是在變量的前面放一個負號,即如果x = 5,則-x等於-5。
這似乎是一個很好的速記,但想知道它的區別是什麼,在MDN上找不到關於這種簡寫的任何文檔。
我假設還有其他方法。
可能是一個基本的問題,但它是討厭不理解這種明顯的速記。
任何想法?
我一直在嘗試做以下事情 - 將正數改爲負數。Javascript:將正數改爲負數?
看來有很多方法可以做到這一點。有標準的
x *= -1
或者只是在變量的前面放一個負號,即如果x = 5,則-x等於-5。
這似乎是一個很好的速記,但想知道它的區別是什麼,在MDN上找不到關於這種簡寫的任何文檔。
我假設還有其他方法。
可能是一個基本的問題,但它是討厭不理解這種明顯的速記。
任何想法?
JavaScript中的一元運算符基本上是速記功能。你可以找到Unary (-)
here的文檔
-
需要一個參數。您傳遞給它的號碼。在引擎蓋下,我猜它將它乘以-1
並返回產品。功能可以寫成:
function -(arg) {
return arg * -1;
}
這是猜想,但。需要通過V8的代碼庫來確定。
更新:
因此,從進一步的研究我的身影,這是不是乘以-1
,它可能是一個簡單的符號改變。我提到了V8的實現,但是這被證明是一個死衚衕,因爲我吮吸C++,但是在檢查ECMA's specs和Steve Hollasch的精彩博客中定義的IEEE 754 specs時,我傾向於反轉符號位。所有的JavaScript數字是64位IEEE 754個浮點,它們可以表示像這樣:
SEEEEEEE EEEEMMMM MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM
哪裏S
爲符號位。所以它看起來像Unary -
只是翻轉標誌位。
這對你很有幫助http://stackoverflow.com/questions/5574144/positive-number-to-negative-number-in-javascript –
「簡寫」[一元'-'運算符](https:/ /developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Unary_negation_(-))必須工作,否則如何將'1'更改爲'-1'以便使用'* = -1'選項? (注意,'-'和'*'試圖將它們的操作數轉換爲數字,因此'x * =「-1」'起作用,就像'x =「12」一樣; x = -x;' ) – nnnnnn
在@martin下面添加了一些更多細節 – nikjohn