Domanda

che è uguale operatore (== === vs) deve essere usato in paragoni JavaScript? che indica sono sostanzialmente identiche tranne '===' assicura anche digitare parità e quindi '==' potrebbe eseguire la conversione tipo. In Douglas Crockford JavaScript: le parti buone , si consiglia di evitare sempre '=='. Tuttavia, mi chiedo che cosa il pensiero originale di progettare due serie di operatori di uguaglianza è stato.

Hai visto tutte le situazioni che l'utilizzo di '==' in realtà è più adatto rispetto all'utilizzo '==='?

È stato utile?

Soluzione

Si consideri una situazione in cui si confrontano i numeri o stringhe:

if (4 === 4)
{
  // true
}

ma

if (4 == "4")
{
  // true
}

e

if (4 === "4")
{
  // false
}

Questo vale per gli oggetti e gli array.

Quindi, nei casi di cui sopra, si deve fare una scelta sensata se usare o == ===

Altri suggerimenti

La semplice risposta è che '==' ha più senso di '===' quando si volete digitare la coercizione per accadere durante il confronto.

Un buon esempio potrebbe essere numeri vengono passati in una stringa di query URL. Se per esempio si dispone di contenuti suddivisi in pagine, e il parametro di query page detiene il numero di pagina corrente, allora si potrebbe verificare la pagina corrente con if (page == 1) ... anche se in realtà è page "1", non 1.

Vorrei suggerire che non v'è alcun problema con l'utilizzo ==, ma per capire quando e perché usarlo (vale a dire l'uso === come regola, e == quando serve uno scopo). In sostanza, == appena ti dà notazione abbreviata - invece di fare qualcosa di simile

if (vble === 0 || vble === "" || vble === null || vble === undefined || vble === false) ...

E 'molto più facile scrivere solo

if (vble == false) ...

(o anche più facile da scrivere)

if (! Vble) ...

Naturalmente ci sono altri esempi che solo in cerca di valori "truthy" o "Falsey".

In realtà, è solo bisogno di capire quando e perché utilizzare == e ===, non vedo alcuna ragione per cui non usarlo == dove si adatta meglio ...

Un altro esempio sta usando queste abbreviazioni per consentire metodo shorthand chiamate:

function func(boolOptionNotCommonlyUsed) {
  if (boolOptionNotCommonlyUsed) { //equiv to boolOptionNotCommonlyUsed == true
    //do something we rarely do
  }
  //do whatever func usually does
}

func(); //we rarely use boolOptionNotCommonlyUsed, so allow calling without "false" as an arg

== confronta se il valore dei 2 lati sono uguali oppure no.

=== confronta se il valore e tipo di dati dei 2 lati sono uguali o meno.

Supponiamo di avere

$var = 0;

if($var == false){
  // true because 0 is also read as false
}

if(!$var){
  // true because 0 is also read as false
}

if($var === false){
  // false because 0 is not the same datatype as false. (int vs bool)
}

if($var !== false){
  // true becuase 0 is not the same datatype as false. (int vs bool)
}

if($var === 0){
  // true, the value and datatype are the same.
}

è possibile controllare http://www.jonlee.ca/the -triple-uguale-a-php /

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top