你能告诉我发生了什么

时间:2017-03-17 11:43:49

标签: javascript conditional-operator

我想问你传递代码时返回的值是多少 ('0'?'0':'1'),我的意思是为什么'0'被认为是真的,当你问一个字符串是否为真时返回的实际值是什么,我知道它也可以写成if('0'){'0'} else {'1'}我只想知道为什么字符串'0'被视为真,如果所有字符串都是真的,如果你有这样的条件

提前致谢!

1 个答案:

答案 0 :(得分:1)

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

任何存在的值都会导致javascript true或条件语句中的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");