在 JavaScript 中,为什么 Number() 函数在这里不起作用并返回一个字符串

In JavaScript why Number() function does not work here and gives back a string?

本文关键字:返回 字符串 一个 不起作用 函数 JavaScript 为什么 Number 在这里      更新时间:2023-09-26

我有这个简单的例子,但无法找出解决方案。有人可以告诉我为什么使用 Number() 函数后 n 仍然是字符串吗?谢谢!

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Still a string</title>
<style>
  input {
    width: 30px;
  }
</style>
</head>
<body> 
    n = <input type="number" id="n"><br/>
    <button id="but" onclick="gen()">Push me!</button>
    <script>
        var n;
        function gen() {
        n = document.getElementById("n").value;
        Number(n);
        alert(typeof n);
        }
    </script>
</body>
</html>

Number 不将参数转换为数字,而是返回数字,请尝试以下操作:

function gen() {
    var n = document.getElementById('n').value;
    var num = Number(n);
    alert(typeof num);
}

javascript 中的原始数据类型(字符串、数字、布尔值等)是不可变的

因此,每当您将字符串"n"

更改为数字时,数字都会存储在内存中,但"n"仍然指相同的字符串。

相反,您应该将代码键入为:

var n;
function gen() {
    n = document.getElementById("n").value;
    n = Number(n);
    alert(typeof n);
}