Possibili duplicati:!!
Javascript === vs == : Does it matter which “equal” operator I use?
Javascript operator !==In JavaScript è = uguale ==
Guarda this commit
È !=
stesso !==
in JavaScript?
[1]:
Possibili duplicati:!!
Javascript === vs == : Does it matter which “equal” operator I use?
Javascript operator !==In JavaScript è = uguale ==
Guarda this commit
È !=
stesso !==
in JavaScript?
[1]:
Sono sottilmente non uguali.
!=
controlla il valore
!==
controlli il valore e tipo
'1' != 1 // false (these two are the same)
'1' !== 1 // true (these two are **not** the same).
Nell'esempio precedente. La prima metà dell'espressione è una stringa, la seconda metà è un numero intero.
Spiffing answer old cap – Andrew
No, non è lo stesso. Vedi ad esempio here.
4 !== '4' returns true (and 4 === '4' returns false)
4 != '4' returns false (and 4 == '4' returns true)
E per il magro pieno, non c'è niente come le specifiche. È possibile scaricare le ultime da qui: http://www.ecma-international.org/publications/files/drafts/ E 'il file PDF che inizia con "tc39-" (al momento della stesura, tc39-2009-050.pdf) . Dice che è una bozza, ma è stata votata all'inizio di questo mese. –
E vedi http://stackoverflow.com/questions/359494/javascript-vs-does-it-matter-which-equal-operator-i-use/1813267#1813267 come leggere le specifiche! – nalply
Hehe, il fatto che tu abbia bisogno di un manuale per leggere una specifica dice davvero qualcosa sulla qualità della specifica stessa :) – Fortega
Controlla non solo il valore ma anche il tipo di elementi confrontati. Questo è lo stesso anche in PHP e in altre lingue.
Da
http://en.wikipedia.org/wiki/JavaScript_syntax#Operators
! == Non identico
! = Non uguale
AND "Identico significa uguale e dello stesso tipo."
Da
http://docstore.mik.ua/orelly/webprog/jscript/ch05_04.htm
"in JavaScript, numeri, stringhe e valori booleani vengono confrontati in base al valore. ... D'altra parte, gli oggetti, array e funzioni vengono confrontati con riferimento . "
-
Quindi, in sintesi sono le stesse? No, perché c'è un test aggiuntivo con! == (oltre! =) Per tipo uguaglianza e uguaglianza.
La grande differenza è che! = Esegue la coercizione di tipo. Cioè, un valore viene effettivamente castato all'altro prima che l'uguaglianza sia controllata. Questo è il motivo per cui, come nella risposta di Amadiere:
'1' != 1
restituisce false. Lo stesso vale per == v. ===. In generale, evita == e! = A meno che tu non voglia specificamente eseguire la coercizione. Usa === e! == e controlla esattamente il risultato che stai cercando.
Dai uno sguardo allo JSLint per una spiegazione della differenza. Ti consiglio anche di passare il codice JavaScript almeno una volta tramite JSLint, potresti imparare cose preziose ...
Vedere http://stackoverflow.com/questions/359494/javascript-vs – Pool
-1: Google è stato danneggiato? Una ricerca per "operatori di comparazione Javascript" ha trovato dozzine di spiegazioni della differenza. Cosa c'era di sbagliato in questi? Cos'altro hai bisogno di sapere? –
@ S.Lott: Aveva bisogno di sapere che erano chiamati "operatori di confronto Javascript" per una cosa - che la domanda non implica (per essere onesti con il poster originale). – Amadiere