Когда был бы JavaScript == иметь больше смысла, чем ===?

Как, Который равняется оператору (== по сравнению с == =) должен использоваться в сравнениях JavaScript? указывает, что они в основном идентичны кроме'==='также гарантирует равенство типа и следовательно'=='мог бы выполнить преобразование типов. В JavaScript Douglas Crockford: Хорошие Части, рекомендуется всегда избежать'=='. Однако я задаюсь вопросом, какова исходная мысль о разработке двух наборов операторов равенства была.

Вы видели какую-либо ситуацию то использование'=='на самом деле более подходит, чем использование'==='?

17
задан Community 23 May 2017 в 12:07
поделиться

4 ответа

Рассмотрим ситуацию, когда вы сравниваете цифры или строки:

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

, но

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

и

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

это относится к объектам, а также массивам.

Так что в приведенных выше случаях вы должны сделать разумный выбор, следует ли использовать == или ===

17
ответ дан 30 November 2019 в 13:12
поделиться

Простой ответ заключается в том, что «==» имеет больше смысла, чем «===», когда вы хотите принуждение к принуждению во время сравнения.

Хороший пример будет передан цифры в строке запроса URL. Если например, вы имеете пагированное содержимое, а Page Page Page Page Page Page Page Page Page PARAMETER PARECELE содержит текущий номер страницы, тогда вы можете проверить текущую страницу с , если (Page == 1) ... Несмотря на то, что страница на самом деле «1» , а не 1 .

5
ответ дан 30 November 2019 в 13:12
поделиться

Помимо уже упомянутых (особенно чудесных Firebug ), это , связанные с развитием , которые я нашел очень полезным:

  • JSonovich делает хорошее Работа в красивой печатной и окраске JSON.
  • Пользовательский коммутатор агента очень удобно для разработки мобильных веб-сайтов (или просто ради любопытства) - «Я iPhone, покажу мне ваше содержимое!»
  • Иногда Firefox покидает вещи в Кэш браузера даже на перезагрузках. Кнопка Clear Cache помогает с этим.
  • Заголовок SPY аналогичен заголовкам Live HTTP, но отображает информацию заголовка (и доступа к множеству большего количества вариантов) в статус-панели.
-121--2424880-

== сравнивает, одинаково ли значение 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/

0
ответ дан 30 November 2019 в 13:12
поделиться

Я бы предположил, что нет проблем с использованием == , но чтобы понять, когда и зачем использовать его (т. Е. Использовать === как правило, а == Когда оно служит целей). По сути, == == просто дает вам сокращенную обозначение - вместо того, чтобы делать что-то вроде

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
3
ответ дан 30 November 2019 в 13:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: