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”,因此结果符合预期。
我在 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”,因此结果符合预期。