我输入数字 控制台打印出来typeof的结果还是string 这是为什么
input.value获取的值默认为string类型,因此获取到的1
其实是'1'
,接楼上的,在var value=+input.value
的过程中,因为+的存在,产生了一个隐式转换,所以input.value都转换成了number类型
#input
中的值一定是个字符串,所以你 typeof
之后是 string
。如果你想要判断是否全为数字,可以使用正则进行校验。
/^\d+$/.test('') // false
/^\d+$/.test('123a') // false
/^\d+$/.test('123') // true
其实你在定义的时候,就已经定义 值是字符串类型的了。
我特意试了一下input type类型改成number, 但判断后类型也是string。
w3c上有个 number类型的提示,我没测试。
提示:iPhone 的 Safari 浏览器会识别 number 输入类型 。
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
因为你取出来的内容都是字符串形式的啊,你eval(value)试试