【发布时间】:2021-04-15 07:37:33
【问题描述】:
我在使用 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>
真正奇怪的是这个操作返回 true 而不是 false。 我做了一些测试,发现这个 '23
【问题讨论】:
-
"如果两个值都是字符串,则根据它们包含的 Unicode 代码点的值将它们作为字符串进行比较" - developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
-
你不应该永远依赖 JS 类型强制,因为这种行为相当不直观。
-
感谢您的回复。我正在听一个关于 udemy 的讲座,这个例子有 2 个字符串值。我认为我们在引用最多的 udemy javascript 课程之一的讲座中发现了一个错误
-
@SuperStormer:代码中没有类型强制。
-
我想让你注意,只有 + 和 运算符在字符串之间没有类型强制。即使值是 2 个字符串,所有其他操作(-、/、*、等...)也会触发类型转换。
标签: javascript types coercion type-coercion