MDNによると、単項プラス演算子を使用する場合:
10進数と16進数( "0x"で始まる)形式の整数がサポートされています。負の数がサポートされています(ただし、hexはサポートされていません)。特定の値を解析できない場合は、NaNと評価されます。
しかし、このJasmineテストを実行すると(toBe()
マッチャーは===
演算子を適用します):
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...
});
ChromeとOperaでは失敗します(IE、Safari、Firefoxでは合格します)。
ChromeとOperaのエンジンに欠陥がありますか、それとも何かが足りませんか?