字符串的词典比较
给定代码片段中字符串“11”和“3”之间的比较激发了人们的好奇心,因为真实的意外结果。一个简单的假设可能是比较基于字符串的长度,但事实并非如此。相反,JavaScript 字符串按字典顺序进行比较。
字典顺序比较是通过比较表示字符串中字符的 Unicode 代码点序列来进行的。首先比较每个字符串的第一个字符;如果这些字符相等,则继续比较第二个字符,依此类推。当遇到具有不同代码点的字符或其中一个字符串用完字符时,比较停止。
对于“11”和“3”,第一个字符是“1”和“3” '。由于“1”的 Unicode 代码点低于“3”,因此根据字典比较,“11”小于“3”。这解释了令人惊讶的结果:较长的字符串被认为小于较短的字符串,因为它包含具有较低代码点的字符。
示例:
'11' < '3' // true '31' < '3' // false '31' < '32' // true '31' < '30' // false 'abc' < 'aaa' // false 'abc' < 'abd' // true
将字符串显式转换为数字,使用一元加 ( ) 运算符:
+'11' < '3' // false
以上是为什么 JavaScript 字符串'11”和'3”在词典比较中比较为 True?的详细内容。更多信息请关注PHP中文网其他相关文章!