я знаю разницу между ==
и ===
однако я всегда считал, что if (condition)
condition
должен был быть оценен против true
с использованием строгого равенства (===
) и не тип- принудительное равенство (==
).В JS если (условие) означает == истинный или === истинный
Смотрите пример:
if (1) {
console.log("1");
}
if (1 == true) {
console.log("2");
}
if (1 === true) {
console.log("3");
}
Она возвращает:
::1
::2
Я знаю, что 1 не строго равна true
, так как тип отличается, но когда я if (condition)
согласно W3C это должен быть строгий тест на равенство (===
), который выполняется не для принудительного выравнивания типа ==
.
Так почему же он регистрирует 1?
Просьба уточнить **, когда я делаю, если (условие) в соответствии с W3C он должен быть == = not == ** –
http://longgoldenears.blogspot.com/2007/09/triple-equals-in-javascript.html –
Когда я делаю «если (1)» согласно W3C, его следует интерпретировать как «если (1 === true) "вместо" if (1 == true) ", что происходит в Chrome – amandanovaes