Javascript 类型强制中的错误

Bug in Javascript type coercion

我在 Javascript 和类型强制(由 Javacript 自动转换变量类型)中遇到了这个奇怪的错误。 这是代码

console.log('23' < '3');

它位于一个名为 index.js 的文件中,该文件由这个简单的 html

调用
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>Hello World</h1>
    <script src="index.js"></script>
</body>
</html>

真正奇怪的是这个操作 returns true 而不是 false。 我做了一些测试,发现这个 '23 < x' 操作对于所有 2 < x < 10 都是错误的。 任何人都知道为什么会出现此错误?

这不是错误,您正在比较两个字符串, 并且字符串“23”小于字符串“3”。 字符串比较时,比较第一个字符,如果一个比另一个小,则结束比较。

“2”在 ASCII table (https://www.asciitable.com/) 中也小于“3”,因此结果符合预期。