给定两个字符串,localeCompare对于等式比较是否总是与三等号相同?
汉字和星体字符似乎没问题
function compareEm(a,b) {
if (a === b != a.localeCompare(b) === 0) {
console.log(a, b, a === b, a.localeCompare(b))
}
}
compareEm('\u6f22', "漢") // no output
compareEm('', "\uD83D\uDCA9") // no output
是否存在不适用的情况? 如果我改变我的语言环境,它会不再适用?
答案 0 :(得分:2)
a.localeCompare(b) === 0
相当于a === b
。
localeCompare
只有在
您开始关注非零答案的标志(例如'á'.localeCompare('b')
)
或者如果您添加标记,例如不区分大小写。
仅供参考,localeCompare
在不同字符串的浏览器中可能不一致。