javascript - page - title css
¿Cuándo tendría JavaScript== más sentido que===? (4)
Como ¿Qué operador igual (== vs ===) se debe usar en las comparaciones de JavaScript? indica que son básicamente idénticos, excepto que '' ===
'' también garantiza la igualdad de tipos y, por lo tanto, '' ==
'' podría realizar la conversión de tipos. En el JavaScript de Douglas Crockford : The Good Parts , se recomienda evitar siempre '' ==
''. Sin embargo, me pregunto cuál fue la idea original de diseñar dos conjuntos de operadores de igualdad.
¿Has visto alguna situación en la que usar '' ==
'' en realidad sea más adecuado que usar '' ===
''?
== compara si el valor de los 2 lados es el mismo o no.
=== compara si el valor y el tipo de datos de los 2 lados son iguales o no.
Digamos que tenemos
$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.
}
puede consultar http://www.jonlee.ca/the-triple-equals-in-php/
Considera una situación cuando comparas números o cadenas:
if (4 === 4)
{
// true
}
pero
if (4 == "4")
{
// true
}
y
if (4 === "4")
{
// false
}
Esto se aplica a los objetos, así como matrices.
Por lo tanto, en los casos anteriores, tiene que tomar una decisión sensata si usar == o ===
La respuesta simple es que ''=='' tiene más sentido que ''==='' cuando quiere que ocurra una coacción de tipo durante las comparaciones.
Un buen ejemplo sería pasar números en una cadena de consulta de URL. Si, por ejemplo, tiene contenido paginado y el parámetro de consulta de la page
contiene el número de la página actual, puede verificar la página actual con if (page == 1) ...
aunque la page
sea realmente "1"
, no 1
.
Yo sugeriría que no hay ningún problema con el uso de ==
, pero entender cuándo y por qué usarlo (es decir, usar ===
como regla y ==
cuando tiene un propósito). Esencialmente, ==
solo te da una notación abreviada, en lugar de hacer algo como
if (vble === 0 || vble === "" || vble === null || vble === undefined || vble === false) ...
Es mucho más fácil simplemente escribir
if (vble == false) ...
(O incluso más fácil de escribir)
si (! vble) ...
Por supuesto, hay más ejemplos que solo buscar valores "de verdad" o "falsey".
Realmente, solo necesitas entender cuándo y por qué usar ==
y ===
, no veo ninguna razón por la que no debo usar ==
donde encaja mejor ...
Otro ejemplo es usar esta abreviatura para permitir llamadas a métodos abreviados:
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