为什javascript通过document.geElementById("idname").value;获取表单的值都是字符串(String)??

代码如下,不管我输入的是数字,还是空(不输)为什么弹出框显示的都是String

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
function abc(){

var a=document.getElementById("idname").value;
alert(typeof(a));
}
</script>
</head>
<body>
<input type="text" id="idname">
<input type="button" value="提交" onclick="abc();">
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
function abc(){

var a=document.getElementById("idname").value;
                        var b=document.getElementById("dname").value;
alert(a+b);
}
</script>
</head>
<body>
<input type="text" id="idname">
        <input type="text" id="dname">
<input type="button" value="提交" onclick="abc();">
</body>
</html>
取到的就是字符串。比如第一个框输入10第二个框输入3。弹出的是103.而不是13.追问

我知道取到的是字符串,问题是我想知道为什么输入的10,按理应该是数字类型呀,为什么取到的却是字符串

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-09-01
你输入的只能是 "1",不会是 1。

跟语言无关。
第2个回答  2016-09-01
对啊,你可以 a=a*1; 把他转为数值类型追问

不是转换的问题呀,我是说如果我输入的是数字(123)应该返回的是number,我不输(空)应该返回的是Null,或者我输入true然后返回 Boolean,但是我这样写出来不管怎么输都是返回的都是String,
我就是想知道这是什么原因,是JavaScript语言本身就这样,还是我的代码写的有问题。

追答

本身就是这个样子的,还有输入框也不能输入别的类型的啊

相似回答