可能重複:
Using bitwise OR 0 to floor a numberJavascript中的OR運算符(|)與parseInt的運算符相同嗎?
執行按位或兩個表達式,如:
console.log(12.22|0) // output --->12
哪裏小數走? 它與parseInt函數相同
parseInt(12.22) // output --->12
它是如何工作的?
可能重複:
Using bitwise OR 0 to floor a numberJavascript中的OR運算符(|)與parseInt的運算符相同嗎?
執行按位或兩個表達式,如:
console.log(12.22|0) // output --->12
哪裏小數走? 它與parseInt函數相同
parseInt(12.22) // output --->12
它是如何工作的?
parseInt
在解析諸如「12px」之類的字符串時很有用。
例如:
pasrseInt("12px"); // returns 12
然而,這並沒有使與逐位或任何意義:
"12px" | 0; // returns 0
執行逐位OR更像是應用Math.floor()
多項 - 按位操作可以在Javascript中使用32位整數。
這與應用'Math.floor'不同。它更接近應用'Math.trunc',但速度要快得多,因爲它不是一個可以替換的函數。這是一個無法替換的運營商。它仍然與'Math.trunc'不同,因爲它會爲'NaN |返回不同的值0' vs'Math.trunc(NaN)' – gman
非常感謝。我知道 –
我猜想按位OR會導致雙精度12.22在應用按位或操作之前自動轉換爲整數,因爲您無法對浮點執行按位或操作。 12.22 | 1 == 13.投票結束爲http://stackoverflow.com/questions/7487977/using-bitwise-or-0-to-floor-a-number。 – jfriend00
如何關閉我的問題?我是新來的。 –