我想找到一种方法以编程方式(即通过编写代码)查找x
我们将x == null
表达式评估为true
的值{{1}} }。
答案 0 :(得分:3)
如果(至少没有基本的JavaScript规则的先验知识)能够以编程方式确定x
为x == null
为真的{em>所有值是不可能的。但是,以下内容应显示可以从中派生启发式的模式:
var v = [null, undefined, false, true, -1, 0, 1, "", " ", "0", {}, []]
for (var i = 0; i < v.length; i++) {
var x = v[i]
alert(x + " == null? " + (x == null))
}
(这个特定的测试用例确实覆盖了它的所有时间。)
可以对== false
等进行类似的测试。
快乐的编码。
有关测试值的更多建议,请参阅Ray Toal的答案。
答案 1 :(得分:2)
如果没有至少知道某些关于JavaScript如何执行类型转换的方式,这些转换应用于运算符==
,则必须针对{{1}测试每个可能的值并且可能的值的数量是无限的,所以你要求的是无法完成的。
通过一些知识,您可以将所有可能的JavaScript表达式分解为以下类别:
针对null
测试每个班级的代表值,看看你得到了什么。
我从问题的方式假设你知道ECMA-262规范中的确切部分,它确切地定义了null
的语义。 (the 5.1
spec的第11.9.3节)