JavaScript 为什么 Number() 函数在这里不起作用并返回一个字符串?
In JavaScript why Number() function does not work here and gives back a string?
我有这个简单的例子,想不出解决办法。有人可以告诉我为什么在使用 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
不会将参数转换为数字而是 returns 数字,试试这个:
function gen() {
var n = document.getElementById('n').value;
var num = Number(n);
alert(typeof num);
}
javascript中的原始数据类型(字符串、数字、布尔值等)是immutable
因此,每当您将字符串 "n" 更改为数字时,一个数字将存储在内存中,但 "n" 仍指代同一个字符串。
相反,您应该输入您的代码:
var n;
function gen() {
n = document.getElementById("n").value;
n = Number(n);
alert(typeof n);
}
我有这个简单的例子,想不出解决办法。有人可以告诉我为什么在使用 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
不会将参数转换为数字而是 returns 数字,试试这个:
function gen() {
var n = document.getElementById('n').value;
var num = Number(n);
alert(typeof num);
}
javascript中的原始数据类型(字符串、数字、布尔值等)是immutable
因此,每当您将字符串 "n" 更改为数字时,一个数字将存储在内存中,但 "n" 仍指代同一个字符串。
相反,您应该输入您的代码:
var n;
function gen() {
n = document.getElementById("n").value;
n = Number(n);
alert(typeof n);
}