5

Tanımsız olarak bitsel işleçlerin mantığı nedir ???JavaScript bitlenmemiş belirsiz tuzaklar?

var x; 
console.log(x);  // undefined 
console.log(x^7); // 7 
console.log(7^x); // 7 
console.log(x|7); // 7 
console.log(7|x); // 7 
console.log(7&x); // 0 
console.log(x&7); // 0 
console.log(~x); // -1 
console.log(x*2); // NaN 
console.log(x/2); // NaN 
console.log(x+2); // NaN 
console.log(x-2); // NaN 

NaN'da bir takım duygular görüyorum. Çünkü tanımlanmamış -2 gerçekten 'sayı değil'. Ama ben bitlik operatörler ve tanımsız olarak herhangi bir mantık takip etmiyorum.

+2

Bit işlemleri yalnızca tamsayılar üzerinde mantıklı, yani argümanlar otomatik olarak o türüyle olduğunu

Not. – Barmar

+0

Evet, bir hata veya anlamlı bir şey atacağını umuyorum. Bu sessiz baskı kodumda sonsuz döngü yaptı. – CoR

cevap

6

iç fonksiyonu [ToInt32]tüm bit operatörleri için tüm operand ile çağrılır. ToInt32(undefined) -> 0 ve aralık [0, 2^32)