你能给我解释一下发生了什么吗

Can you please explain to me what happens

想问一下你传码的时候返回的值是多少 ('0'?'0':'1'),我的意思是具体为什么 '0' 被视为 true 以及当您询问字符串是否为 true 时返回的实际值是多少,我知道也可以写成 if('0') {'0'} else {'1'} 我只想知道为什么字符串 '0' 被视为 true 以及如果您有这样的条件,所有字符串是否都是 true .

提前致谢!

当你说 '0' 时,你指的是 ASCII 字符 '0' 转换为 int 时实际上是 48,因此结果为真 ...

任何存在的值都会导致 true in javascript if 或条件语句。导致 false 的值很少是 int 0、boolean false 或未定义(不是未声明)变量。

例如:

var d;
if(d) alert("exists");
else  alert("d undefined");

d="a";
if(d) alert("exists");
else  alert("d undefined");

//if(x) // Commented out because this is an error because x identifier does not exist (declared) yet.

if(1) alert("1 is true");
else alert("1 is false");

if("false") alert("String false results in true");

if(false) alert("This won't be displyed");