Логично или (||)
var result = true || ЛОЖЬ;
Подобно логике и операциям, если есть операнд, который не является логическим, логиком или не обязательно возвращает логическое; В настоящее время это следует следующим правилам:
□ Если первый операнд является объектом, возвращается первый операнд.
□ Если первый операнд оценивается на ложь, возвращается второй операнд.
□ Если оба операнда являются объектами, возвращается первый операнд.
□ Если оба операнда являются нулевыми, верните NULL
□ Если оба не определены, верните неопределенные.
□ Если оба нанялись, верните NAN
Разница между "===" и "=="
Оператор равенства (==)
Равный оператор косвенно преобразует значения операции и сравнит их:
Если операционное значение является логическим, оно преобразуется в числовое значение перед сравнением
Если одно оперативное значение - это строка, а другое операционное значение - это числовое значение, строка преобразуется в числовое значение через функцию number ()
Если одно значение операции является объектом, а другое - нет, то метод значения () объекта вызывается, и результат сравнивается в соответствии с предыдущими правилами
нулевые и неопределенные равны
Если операционное значение - NAN, равное сравнение возвращает FALSE
Если оба операционных значения являются объектами, сравните, указывают ли они на один и тот же объект. Если оба операнда указывают на один и тот же объект, равный оператор возвращает true, в противном случае вернуть ложь
Следующее объяснено отдельно:
Давайте поговорим о ===, это относительно просто. Следующие правила используются для определения того, равны ли два значения ===:
1. Если типы разные, они [неравны]
2. Если оба являются численными значениями и являются одинаковым значением, то [равно]; (! Исключение), если хотя бы один из них - НАН, то [не равен]. (Чтобы определить, является ли значение NAN, вы можете использовать только ISNAN () для суждения)
3. Если оба являются строками, а символы в каждой позиции одинаковы, то [равенство]; в противном случае [не равняется].
4. Если оба значения являются истинными, или оба являются ложными, то [равны].
5. Если оба значения относятся к одному и тому же объекту или функции, то [равенство]; в противном случае [не равняется].
6. Если оба значения являются нулевыми или оба неопределенными, то [равны].
Давайте поговорим о ==, согласно следующим правилам:
1. Если два типа значений одинаковы, сделайте === сравнение.
2. Если два типа значений разные, они могут быть равны. Преобразование типа выполняется в соответствии со следующими правилами, а затем сравнивает:
а Если один нуль, а другой - не определен, то [равно].
беременный Если один является строкой, а другой - числовое значение, преобразовать строку в числовое значение, а затем сравните ее.
в Если какое -либо значение верно, преобразуйте его в 1 и сравните его; Если какое -либо значение неверно, преобразуйте его в 0 и сравните его.
дюймовый Если один является объектом, а другой - численная или строка, преобразуйте объект в значение базового типа, а затем сравните его. Преобразуйте объект в основной тип и используйте его метод ToString или значение. Встроенный класс JS Core попытается ценить до Tostring; Исключением является дата, которая использует преобразование ToString. Основной объект Non-JS, скажем так (это более хлопотно, я мало понимаю)
эн. Любая другая комбинация [неравна].
Значение выражения выражения
null == undefinedtruetrue == 1true
"Nan" == nanfalse $ null == 0false
false == 0truenan! = Nantrue
Короче говоря, «==» требует только равных значений. «===» требует, чтобы значение и тип были равны.
Информация поступает из расширенного программирования JavaScript, разобралась и обновлена позже