according to MDN, khi sử dụng toán tử toán tử cộng:Hành vi của JS hành toán tử cộng chỉ áp dụng trên một chuỗi đại diện cho một hex tiêu cực
Số nguyên trong cả thập phân và thập lục phân ("0x" -prefixed) định dạng được hỗ trợ . Số âm được hỗ trợ (mặc dù không cho số hex). Nếu nó không thể phân tích một giá trị cụ thể, nó sẽ đánh giá thành NaN.
Nhưng khi tôi chạy thử nghiệm Jasmine này (toBe()
khớp áp dụng một nhà điều hành ===
):
it("should return NaN when trying to convert a string representing a NEGATIVE HEX to the corresponding number", function() {
var a = '-0xFF';
expect(typeof +a).toBe('number');
expect(isNaN(+a)).toBeTruthy(); //Fails on Chrome and Opera...
});
Nó thất bại trên Chrome và Opera (và vượt qua trong IE, Safari và Firefox).
Đó có phải là lỗ hổng trong các công cụ của Chrome và Opera hay tôi thiếu gì đó không?