我有这个简单的例子,无法找出解决方案。有人可以告诉我为什么在使用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>
答案 0 :(得分:2)
Number
不会将参数转换为数字但会返回数字,请尝试以下操作:
function gen() {
var n = document.getElementById('n').value;
var num = Number(n);
alert(typeof num);
}
答案 1 :(得分:1)
javascript中的原始数据类型(字符串,数字,布尔等)是immutable
因此,每当您将字符串“n”更改为数字时,数字将存储在内存中,但“n”仍指向相同的字符串。
相反,您应该将代码输入为:
var n;
function gen() {
n = document.getElementById("n").value;
n = Number(n);
alert(typeof n);
}