与比较运算符混淆

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)