我遇到了一个非常奇怪的问题,与我最新的JS项目。我通常使用===
来比较字符串,但是当比较两个不同对象的字符串属性时,即使它们是完全相同的字符串,我也会得到假。我在Node.js的翻译测试了这通过执行以下操作:用localeCompare比较字符串vs ===?
> x = {str: 'hello'}
{ str: 'hello' }
> y = {str: 'hello'}
{ str: 'hello' }
> y.str === x.str
true
所以我不能弄清楚,为什么我的代码wasnt工作。但是当我从使用===
切换到str1.localeCompare
BOOM时,它可以工作。两者有什么区别?
'localeCompare'将当前的语言环境考虑在内。 '==='将原始字节考虑在内。 –
该图片没有显示问题。 – James
如果'==='不起作用,但'.localeCompare()'* does *工作,那么你的字符串并不是真正的“完全相同的字符串”。 – Pointy