首先提问一个问题,console.log('我真是😂了'.length)
会打印什么结果?是5
吗?
很多人会认为字符串的长度(‘xxx’.length
)就是肉眼看到的字符的数量,其实并不是。
比如:
const num1 = '😂'.length
console.log(num1) // 结果会得到2
再比如:
const num2 = '\0'.length
console.log(num2) // 结果会得到1
这是为什么呢?
查阅一下MDN文档(地址)就会发现原因:
第一个代码块中,一个表情符号需要2个代码单元存储,所以返回的是2
第二个代码块中,\
是转义符号,所以\0
被当成1个字符来存储,所以返回的是1。同理,'\n\r'.length
是2。
那么,开头的问题已经有答案了👇
答案就是6
。