Список у вас есть являются 5 из 6 значений "falsy" в JavaScript. Если вы добавите «NaN» к этому, у вас будут все значения фальши в javascript. Таким образом, полный «falsy» список
1)0
2)""
3)false
4)undefined
5)null and
6)NaN
При использовании в «если» заявление, все они ведут себя точно так же, так
if(0)
if("")
if(false)
if(undefined)
if(null) and
if(NaN) would behave the same
Вы просили короткий краткий ответ, но я думаю, что лучший способ показывает, как он работает с некоторым базовым тестом. Извиняюсь за долгий ответ
//Checking if all the "falsy" values evaluate the same way in a "if" statement
console.log("Checking if(0)");
if(0) {
console.log(" if(0) Will not be reached");
}
console.log('Checking if("")');
if("") {
console.log(' if("") Will not be reached');
}
console.log("Checking if(undefined)");
if(undefined) {
console.log("if(undefined) Will not be reached");
}
console.log("Checking if(null)");
if(null) {
console.log("if(null) Will not be reached");
}
console.log("Checking if(Nan)");
if(NaN) {
console.log("if(NaN) Will not be reached");
}
console.log("Checking if(false)");
if(false) {
console.log("if(false) Will not be reached");
}
// Проверка, если все falsy значения равны (==) друг с другом в случае заявление
if(0 == "") {
console.log('if(0 == "") is true');
}
if(0 == false) {
console.log("if(0 == false) is true");
}
if("" == false) {
console.log('if("" == false) is true');
}
if(0 == undefined) {
console.log("if(0 == undefined) Will not be reached");
}
if("" == null) {
console.log('if("" == null) Will not be reached');
}
if(undefined == null) {
console.log("if(undefined == null) is true");
}
if(NaN == "") {
console.log('if(NaN == "") Will not be reached');
}
// Проверка строго равенства между ложными и falsy значения if (undefined === false) { console.log («Не будет достигнуто»); }
if(null === false) {
console.log("Will not be reached");
}
if(undefined ===false) {
console.log("Will not be reached");
}
if(0 === false) {
console.log("Will not be reached");
}
if("" === false) {
console.log("Will not be reached");
}
if(NaN === false) {
console.log("Will not be reached");
}
Что это означает, что, хотя эти «falsy» значения могут быть использованы в «если» заявление взаимозаменяемы, все они не равны (==) друг с другом (особенно множество 0,» «и ложно с другими тремя). Если используется более строгая равная (====), ни одна из них не будет равна false, следовательно, возможно, классификация «ложь» вместо ложной.
Пожалуйста, см. 'User2549366' answer.Помощь мне. –
Я думаю, что есть лучшие ответы, чем эта ссылка. –