js里0||1,为什么是1

JavaScript016

js里0||1,为什么是1,第1张

js里01,是1是由于||运算符在两个操作数任意一个为非零时结果就是1,所以01的结果为1,整个表达式的结果就为1。用来将后面的表达式转换为布尔型的数据(boolean),javascript是弱类型的语言(变量没有固定的数据类型)有时需要强制转换为相应的类型。

理解==或===的区别

1.

==会把比较的二者进行类型转换:

如:0

==

false

//

true,

会把0转成bool值进行比较

1

==

true

//

true,

同样把1转成bool值再和true进行比较

2.

===是不会把比较的二者进行类型转换,是string就是string,是number就是number

如:

0

===

false

//

false,

因为0是number,false是boolean,两者就肯定不相等

1

===

true

//

false

当把"1"直接参加到除加法之外的其他数学运算(如减、乘、除、乘方、开方等)时,javascript会自动把"1"转换为1再进行计算,因此在这种情况下"1"是等于1的。比如:

alert(2-"1") //结果为1;

alert(2*"1") //结果为2;

alert("1"/2) //结果为0.5

但如果把"1"参加到加法运算中,则一律按字符串连接处理,也就是说这个时候"1"是不等于1的。比如:

alert(2+"1") //结果为"21"

alert("1"+2) //结果为"12"

alert("1"+"2") //结果为"12"