在比较字符串值时,我一直都在开始使用===(三等分,严格比较),但是现在我发现
"foo" === new String("foo")
是错误的,与此相同:
var f = "foo", g = new String("foo");
f === g; // false
当然:
f == g; // true
因此,建议始终使用==进行字符串比较,还是始终在比较之前将变量转换为字符串?
new String
(完全毫无意义)创建字符串,而不要使用==
new String("foo")
Javascript 这样的构造?我从未在代码中看到过这样的代码,即jQuery ...
String(obj)
收到“字符串”参数后,您可以用于将装箱的字符串转换为原始字符串。("foo" === String(new String("foo"))) === true
foo
是纯字符串,new String("foo")
而是对象字符串