Часть 1:
Когда мы используем if(something)
javascript, проверим, является ли это значением "Истина" или "Ложь".
Так что если мы говорим
if(1) {
alert("Yes, it's true...");
}
javscript проверит, является ли 1 истинным значением, и это так. Все, что не является ложным значением, является правдивым по расширению.
Ложные значения: 0, 0n, null, undefined, false, NaN и пустая строка «». Поэтому, если мы напрямую поместим любое из вышеперечисленного в круглые скобки, оно вернет false.
например, if (null) ...
предложение if не будет выполнено, потому что null является ложным. 2:
Когда мы используем if(something == true)
, мы проверяем, равно ли одно значение другому. Если типы не совпадают, так как мы используем ==
, произойдет принуждение.
Что это за «принуждение»? Если мы скажем if('1' == 1)
, то будет выполнено условие if, поскольку оно возвращает true. Javascript преобразует 1 (число) в '1' (строку) в этом случае.
Если мы хотим быть строгими и сказать: «Я хочу только true, если они оба числа, я не все равно, если 1 - строка ", тогда мы используем if(1 === '1')
, и это не будет выполнять условие if (потому что условие возвращает false).
Так что, если мы скажем if(false == false)
, это вернет true, потому что false равно в false, и условие if будет выполнено.
Обратите внимание на разницу, если мы сказали if(false)
или if('')
, если оператор if не будет выполнен.
Далее, если мы хотим использовать отрицание, мы должны поставить! перед логическим значением мы отрицаем, независимо от того, является ли оно частью условия if или ... Нет никакого способа обойти это.
Однако, есть более короткая версия этого:
var a = 3;
var b = 2;
if(a===b) {
alert('A is equal to B');
} else {
alert('B is not equal to A');
}
Это считается короче (троичный оператор): обратите внимание, что если мы хотим использовать более одного оператора, мы должны использовать if else
a = 3;
b = 2;
a===b ? alert('A is equal to B') : alert('B is not equal to A');