2012-04-27 10 views
6

according to MDN, cuando se utiliza el operador unario plus:Comportamiento de JS operador unario plus aplicado en una cadena que representa un hex negativo

números enteros en tanto decimal y hexadecimal ("0x" -prefixed) formatos se compatibles. Los números negativos son compatibles (aunque no para el hex). Si no puede analizar un valor particular, se evaluará a NaN.

Pero cuando corro esta prueba Jazmín (la toBe() matcher aplica un operador de ===):

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... 
    }); 

Se produce un error en Chrome y Opera (y pasa en el IE, Safari y Firefox).

¿Es un defecto en los motores de Chrome y Opera o me falta algo?

Respuesta

2

Puede - o no puede ser visto como un defecto, dependiendo de cómo se adjunta a las especificaciones.)

He encontrado un interesting discussion con respecto a este comportamiento. Parece que Firefox estuvo por primera vez en el campo 'mejor que la especificación', pero luego lo arregló de acuerdo con las especificaciones.

Cuestiones relacionadas