当我尝试在控制台中评估此表达式时,结果为false
,为什么?
console.log('\u{1D11E}'.charAt(0) === '\u{1D11E}')
最佳答案
一个简单的console.log会向您显示问题
console.log('\u{1D11E}'.charAt(0))
console.log('\u{1D11E}')
console.log('\u{1D11E}'.charAt(0) === '\u{1D11E}')
如您所见,它们没有给出相同的结果,这是因为
charAt
仅处理 UTF-16
code units。有关如何处理UTF-16字符的信息,请参见同一源上的代码片段(也适用于其他平面,因此代码点> 65535)。