参见英文答案 > Why does (“foo” === new String(“foo”)) evaluate to false in JavaScript? 5个
我已经查看了stackoverflow上的所有问题和答案,但找不到简单的答案.
字符串和对象之间究竟有什么区别?
例如,如果我有这个代码:
var a = 'Tim';
var b = new String('Tim');
究竟有什么区别?
我知道new会使代码复杂化,而新的String会降低它的速度.
另外,我理解a == b是真的,但更严格地说= = b b是假的.为什么?
我似乎无法理解对象和字符串创建背后的过程.
例如:
var a = new String ('Tim');
var b = new String ('Tim');
a == b是假的
最佳答案
a是string类型,而b是object类型.
===包括类型检查并导致字符串不是对象
a === b会给你一个假的
new String(‘Tim’)=== new String(‘Tim’)也将评估为false,因为两者都是不同的对象