Javascript 0与Blank

Javascript 0与Blank,javascript,jquery,Javascript,Jquery,如果我有一个变量x=“” 我检查以下情况 如果x!=0 是否在所有浏览器中都被评估为false 当您使用=运算符时,JavaScript会尝试将两个操作数转换为同一类型以进行比较,为什么0被视为相同的“”?。当您有一个字符串和一个数字时,它会尝试将该字符串转换为一个数字“”转换为0,给出此结果 由于这种行为,许多人选择使用==和==运算符。它们的操作数必须是相同的类型才能被视为相等。使用=运算符时,JavaScript会尝试将两个操作数转换为相同的类型以进行比较。当您有一个字符串和一个数字时,它

如果我有一个变量x=“”

我检查以下情况 如果x!=0

是否在所有浏览器中都被评估为false


当您使用
=
运算符时,JavaScript会尝试将两个操作数转换为同一类型以进行比较,为什么0被视为相同的“”?

。当您有一个字符串和一个数字时,它会尝试将该字符串转换为一个数字<代码>“”转换为
0
,给出此结果


由于这种行为,许多人选择使用
==
==运算符。它们的操作数必须是相同的类型才能被视为相等。

使用
=
运算符时,JavaScript会尝试将两个操作数转换为相同的类型以进行比较。当您有一个字符串和一个数字时,它会尝试将该字符串转换为一个数字<代码>“”
转换为
0
,给出此结果


由于这种行为,许多人选择使用
==
==运算符。它们的操作数必须是相同的类型才能被视为相等。

因为
0
'
都是这样计算的:

0 == false  //true
'' == false //true

使用
==
正确检查

,因为
0
'
都是这样计算的:

0 == false  //true
'' == false //true
使用
==
正确检查是否为
铸造时是否与
0
相同:

“”!=0
->
字符串!=int
->
(int)字符串!=int
->
int!=int

铸造时等同于
0


“”!=0
->
字符串!=int
->
(int)字符串!=int
->
int!=int

我不同意以重复方式结束投票;杰里米:我非常同意你的观点……这根本不是重复的……我不同意投票以重复结束;Jeremy:我非常同意你的观点……这根本不是重复的….+1,因为它指出,在跨
=
的一个字符串和一个数字的情况下,JavaScript将首先将字符串转换为数字。但是,“找不到值”并不是将空字符串转换为零的真正原因。字符串
“dog”
被转换为
NaN
,尽管您可能会认为它无法“找到值”:-@Ray,agree,另一个例子,仅包含空格字符的字符串,例如
“\t\n\r”
也被转换为
0
,正如空字符串…+1指出,在一个字符串和一个数字跨越
=
的情况下,JavaScript将首先将字符串转换为数字。但是,“找不到值”并不是将空字符串转换为零的真正原因。字符串
“dog”
被转换为
NaN
,尽管您可能会认为它无法“找到值”:-@Ray,同意,另一个例子,仅由空格字符组成的字符串,例如
“\t\n\r”
也被转换为
0
,就像空字符串一样……实际上这不是真的<代码>0
不会“计算为”false,空字符串“计算为”false也不会。当字符串和数字与
=
进行比较时,JavaScript会尝试将字符串转换为数字,然后进行数字相等比较。在这种情况下,这与虚假毫无关系。这可能就是为什么
==
受到如此糟糕的评价的原因。没有人真正理解它。例如,尝试
null==0
。他们两个都是虚伪的,但他们彼此都不是。=。事实并非如此<代码>0不会“计算为”false,空字符串“计算为”false也不会。当字符串和数字与
=
进行比较时,JavaScript会尝试将字符串转换为数字,然后进行数字相等比较。在这种情况下,这与虚假毫无关系。这可能就是为什么
==
受到如此糟糕的评价的原因。没有人真正理解它。例如,尝试
null==0
。他们两个都是虚伪的,但他们彼此都不是。