看起来相同的字符串不相等
Strings that look the same aren't equal
一些单元测试失败。经过调试,我发现问题在这里
var a = "USD 1,234.12"
var b = "USD 1,234.12"
console.log(a === b)
字符串 a
由货币格式化程序库生成,字符串 b
由单元测试开发人员编写。
我不明白为什么 ===
认为这两个看起来相同的字符串不相等。这里发生了什么?
您的两个字符串中存在隐藏的差异。 运行 这个:
var a = "USD 1,234.12"
var b = "USD 1,234.12"
for (var i = 0; i < a.length; i++) {
console.log(a.codePointAt(i), b.codePointAt(i));
}
b
字符串中的space是一个普通的space(32),而a
字符串中的space是一个Unicode非-breaking space (160).
一些单元测试失败。经过调试,我发现问题在这里
var a = "USD 1,234.12"
var b = "USD 1,234.12"
console.log(a === b)
字符串 a
由货币格式化程序库生成,字符串 b
由单元测试开发人员编写。
我不明白为什么 ===
认为这两个看起来相同的字符串不相等。这里发生了什么?
您的两个字符串中存在隐藏的差异。 运行 这个:
var a = "USD 1,234.12"
var b = "USD 1,234.12"
for (var i = 0; i < a.length; i++) {
console.log(a.codePointAt(i), b.codePointAt(i));
}
b
字符串中的space是一个普通的space(32),而a
字符串中的space是一个Unicode非-breaking space (160).