Разница между == и === в JavaScript [дубликат]

На данный момент для этого нет констант.

Способ .NET для этого использует класс StackTrace .

Однако он работает только для сборки Debug. Поэтому, если вы его используете, вы можете использовать код с помощью StackTrace между

#if DEBUG
    //your StackTrace code here
#endif

. Вы можете прочитать об использовании препроцессоров #if для ваших версий DEBUG и RELEASE в следующем потоке Stackoverflow.

C # if / then директивы для debug vs release

EDIT: на всякий случай вам все еще нужна эта информация для отладки в сборках релизов, прочитайте следующий ответ на Stackoverflow:

Отобразить номер строки в Stack Trace для сборки .NET в режиме деблокирования

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

2 ответа

=== и !== строгие операторы сравнения:

JavaScript имеет и строгое и преобразовывающее тип сравнение равенства. Для strict равенство сравниваемые объекты должны иметь тот же тип и:

  • Две строки строго равны, когда у них есть та же последовательность символов, та же длина и те же символы в соответствующих положениях.
  • Два количества строго равны, когда они численно равны (имейте то же числовое значение). NaN ничему не равно, включая NaN. Положительные и отрицательные нули равны друг другу.
  • Два булевых операнда строго равны, если оба верны, или оба - ложь.
  • Два объекта строго равны, если они обращаются к тому же Object.
  • Null и Undefined типы == (но не ===). [Т.е. (Null==Undefined) true, но (Null===Undefined) false]

Операторы сравнения - MDC

1156
ответ дан аlex dykyі 23 May 2017 в 22:10
поделиться
  • 1
    спасибо ~~, я также узнал, что, так как я использую WebStorm, я могу на самом деле запустить страницу как во встроенном веб-сервере – Ethan Li 27 April 2013 в 22:39

Смотрите здесь: http://longgoldenears.blogspot.com/2007/09/triple-equals-in-javascript.html

Эти 3 знака "равно" означают "равенство без приведения типа". Используя тройное равняется, значения должны быть равны по типу также.

0 == false   // true
0 === false  // false, because they are of a different type
1 == "1"     // true, automatic type conversion for value only
1 === "1"    // false, because they are of a different type
null == undefined // true
null === undefined // false
'0' == false // true
'0' === false // false
1908
ответ дан sdfx 23 May 2017 в 22:10
поделиться
Другие вопросы по тегам:

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