为什么新的字符串('hello') === 新的字符串('hello')评估为假?
为什么新的字符串('hello') === 新的字符串('hello')评估为假?
这个问题已经有了答案:在JavaScript比较中,应当使用哪个等于运算符(== vs. ===)?JavaScript比较运算符:Identity vs. Equality
为什么在JavaScript中以下声明返回false?
new String('hello') === new String('hello')
admin 更改状态以发布 2023年5月24日
你正在比较对象实例,这不像字符串比较 ('hello' === 'hello'
)。在JavaScript中,比较对象实际上是比较对象的内存地址,并且总是返回false,因为每个对象的内存地址都不同。
与其比较对象实例,比较字符串值 - jsFiddle
( String('hello') === String('hello') ) // returns true due to comparing strings
严格比较两个对象 - false不是相同的对象
new String('hello') === new String('hello')
严格比较两个字符串 - true,返回值相同且返回类型相同
String('hello') === String('hello')