在编写简单的代码片段以便在JavaScript中进行比较时,我发现了一些奇怪的行为。
案例1:
typeof(window.WHTStatement.DDL_TPTypeID.size()) ==> "number"
typeof(window.WHTStatement.Txt_TPTypeValue.size()) ==> "number"
window.WHTStatement.DDL_TPTypeID.size() == 1 == window.WHTStatement.Txt_TPTypeValue.size()
返回true - 确定
案例2:
window.WHTStatement.DDL_TPTypeID.size() === 1 == window.WHTStatement.Txt_TPTypeValue.size()
返回true - 确定
案例3:
window.WHTStatement.DDL_TPTypeID.size() === 1 === window.WHTStatement.Txt_TPTypeValue.size()
返回false,为什么?
案例3中究竟发生了什么。有人可以详细说明吗?
答案 0 :(得分:4)
与Python不同,JS x == y == z
不等于x == y && y == z
而是(x == y) == z
。因此,您实际上将布尔值与在类型检查中明显失败的数字进行比较。
==
比较有效,因为1 == true
为true
。