Stavo leggendo il ECMAScript 5.1 spec. Dice:Cosa significano "positivo" e "negativo" in ECMAScript? +0 e -0
Il metodo
slice
accetta due argomenti, avviare e fine [...]. Se start è negativo, viene considerato come length + start dove lunghezza è la lunghezza dell'array. Se fine è negativo, viene considerato come lunghezza + fine dove lunghezza è lunghezza della matrice.
Che cosa significa "negativo"? Ha senso che, come in matematica,
- Se
num > 0
, alloranum
è positivo - Se
num < 0
, quindinum
è negativo.
Ma che dire di +0
e -0
? In matematica c'è un singolo 0
, che non è positivo né negativo. La mia ipotesi è che, in ECMAScript,
+0
(anche noto come zero positivo) è positivo.-0
(a.k.a negativo) è negativo.
Ma ho provato a utilizzare -0
con slice
ei browser lo considerano come non negativo.
Quindi, sono entrambi +0
e -0
non positivo e non negativo, nonostante i loro nomi?
Dove si definisce la positività o la negatività di un numero? Non ho trovato quello definito nelle specifiche ECMAScript. La definizione è ereditata da IEEE 754?
È interessante notare che 'Math.abs (-0) === -0' è vero (in Chrome). – ssube
@ssube Quindi è '0 === -0'. –
@ssube Sì, '0 === -0'. [The Strict Equality Comparison Algorithm] (http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.6) non li differenzia. [The SameValue Algorithm] (http://www.ecma-international.org/ecma-262/5.1/#sec-9.12) fa. In ECMAScript 6, 'Object.is (0, -0)' è 'false'. – Oriol