5
Logic của các toán tử bitwise trên undefined là gì?Cạm bẫy JavaScript không xác định rõ ràng?
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
Tôi có thể thấy một số ý nghĩa trong NaN. Bởi vì không xác định -2 thực sự là 'không phải là một số'. Nhưng tôi không làm theo bất kỳ logic trên các nhà khai thác bitwise và không xác định.
hoạt động Bit chỉ có ý nghĩa về số nguyên, vì vậy các đối số sẽ được tự động cưỡng chế thi hành loại đó. – Barmar
Có, tôi mong đợi nó sẽ ném một lỗi hoặc một cái gì đó có ý nghĩa. Sự ép buộc im lặng đó tạo ra vòng lặp vô hạn trong mã của tôi. – CoR