与比较运算符混淆
Confusion with comparision opertaor
请帮助我理解这是如何工作的:
"1" > "01" returns true
但是
1 > 01 returns false
>
运算符将 lexically compare strings, 进行数字比较。
并且因为 1
大于 0
它会 return 为真。
这与比较 "B"
和 "AB"
非常相似:
由于 "A"
在 "B"
之前,因此 "B" > "AB"
比较运算符总是将值与操作数的相应位置进行比较,因此在第一个示例中
"1" > "01"
| ||
| ||________________ 2nd ( 2nd operand )
| __________________ 1st ( 2nd operand )
_________________________ 1st ( 1st operand )
很明显1 > 0
是真的
在第二个示例中,值是数字,因此前导 0
没有任何意义,因此它实际上与
相同
1 > 1 which is clearly false
JS 不保留任何数字前的前导零
let one = 00001
console.log(one)
console.log(000002)
请帮助我理解这是如何工作的:
"1" > "01" returns true
但是
1 > 01 returns false
>
运算符将 lexically compare strings, 进行数字比较。
并且因为 1
大于 0
它会 return 为真。
这与比较 "B"
和 "AB"
非常相似:
由于 "A"
在 "B"
之前,因此 "B" > "AB"
比较运算符总是将值与操作数的相应位置进行比较,因此在第一个示例中
"1" > "01"
| ||
| ||________________ 2nd ( 2nd operand )
| __________________ 1st ( 2nd operand )
_________________________ 1st ( 1st operand )
很明显1 > 0
是真的
在第二个示例中,值是数字,因此前导 0
没有任何意义,因此它实际上与
1 > 1 which is clearly false
JS 不保留任何数字前的前导零
let one = 00001
console.log(one)
console.log(000002)