Как, Который равняется оператору (== по сравнению с == =) должен использоваться в сравнениях JavaScript? указывает, что они в основном идентичны кроме'===
'также гарантирует равенство типа и следовательно'==
'мог бы выполнить преобразование типов. В JavaScript Douglas Crockford: Хорошие Части, рекомендуется всегда избежать'==
'. Однако я задаюсь вопросом, какова исходная мысль о разработке двух наборов операторов равенства была.
Вы видели какую-либо ситуацию то использование'==
'на самом деле более подходит, чем использование'===
'?
Рассмотрим ситуацию, когда вы сравниваете цифры или строки:
if (4 === 4)
{
// true
}
, но
if (4 == "4")
{
// true
}
и
if (4 === "4")
{
// false
}
это относится к объектам, а также массивам.
Так что в приведенных выше случаях вы должны сделать разумный выбор, следует ли использовать == или ===
Простой ответ заключается в том, что «==» имеет больше смысла, чем «===», когда вы хотите принуждение к принуждению во время сравнения.
Хороший пример будет передан цифры в строке запроса URL. Если например, вы имеете пагированное содержимое, а Page Page
Page Page Page Page Page Page Page PARAMETER PARECELE содержит текущий номер страницы, тогда вы можете проверить текущую страницу с , если (Page == 1) ...
Несмотря на то, что страница
на самом деле «1»
, а не 1
.
Помимо уже упомянутых (особенно чудесных Firebug ), это , связанные с развитием , которые я нашел очень полезным:
== сравнивает, одинаково ли значение 2 сторон или нет.
=== сравнивает, одинаково ли значение и тип данных 2 сторон или нет.
скажем, у нас есть
$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.
}
, вы можете проверить http://www.jonlee.ca/the-triple-equals-in-php/
Я бы предположил, что нет проблем с использованием ==
, но чтобы понять, когда и зачем использовать его (т. Е. Использовать ===
как правило, а ==
Когда оно служит целей). По сути, ==
==
просто дает вам сокращенную обозначение - вместо того, чтобы делать что-то вроде
if (vble === 0 || vble === "" || vble === null || vble === undefined || vble === false) ...
, гораздо проще просто писать
if (vble == false) ...
(или даже проще написать)
, если (! VBLE) .. ,
Конечно, есть больше примеров, чем просто ищет «правдоподобных» или «ложных» ценностей.
Действительно, вам просто нужно понимать, когда и зачем использовать ==
и ===
, я не вижу причин, почему не использовать ==
Откуда оно подходит лучше ...
Другим примером является использование этого сокращения, чтобы позволить сокращению метода метода:
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