То, что вы ищете, это «Принуждение» в Javascript.
Когда мы используем один тип переменной Javascript в месте / функции / условии и т. Д., Где ожидается некоторый другой тип переменной, Javascript не выдает ошибку. Вместо этого он изменяет значение этой переменной на этот конкретный тип переменной. Это называется принуждением.
Например:
var a = "" ;
if (a){ //a is coerced to false
console.log (true);
}
else{
console.log (false);
}
В приведенном выше коде нулевая строка приводится к значению false.
Аналогично, в вашем коде происходит принуждение:
var x=1
if(x){ // x is coerced to true, this condition is met and x is set to 0.
x=0;
}
if(x){ // since x is 0, it is coerced to false, so condition is not satisfied
x=1
};
alert(x);
Для получения более подробной информации, перейдите по ссылке .