Se + è preceduto da qualsiasi valore senza valore precedente a +, il motore JavaScript proverà a convertire tale variabile in Numero. Se è valido, fornirà il Numero altrimenti restituirà NaN. Ad esempio
+ "1" // is equal to integer value 1
+ "a1" // will be NaN because "a1" is not a valid number
Nel caso sopra
+"a1" != "a1" // true, so this is not a number, one case is satisfied
+"1" == "1" // true, so it is number
altro caso semplice sarebbe, perché l'espressione sotto dare questa uscita
console.log("Why I am " + typeof + "");
// returns "Why I am number"
Poiché + "" è 0.
Se si desidera verificare se si tratta di un numero o meno è possibile utilizzare la funzione di seguito
function isNumber(a){
/* first method : */ return (+a == a);
/* second method : */ return (+(+a) >= 0);
// And so many other exists
}
Qualcuno mi corregga se sbaglio da qualche parte ..
Or ancora più semplice, la funzione nativa 'isNaN' ... –
@Kolink tratto dai documenti Underscore:" Nota: questa non è la stessa cosa della funzione nativa isNaN, che restituirà anche true se la variabile non è definita " – robertklep
@Kolink' isNaN (undefined) 'restituisce true. –