typeof 输入框里面的值 就算输入为数字还是返回string

图片描述
我输入数字 控制台打印出来typeof的结果还是string 这是为什么

阅读 10.5k
9 个回答

因为你取出来的内容都是字符串形式的啊,你eval(value)试试

因为input.value取到的值就是字符串类型的。

var value = +input.value;
这样就 OK 了

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

+'123'===123

clipboard.png

其实你在定义的时候,就已经定义 值是字符串类型的了。

我特意试了一下input type类型改成number, 但判断后类型也是string。

w3c上有个 number类型的提示,我没测试。
提示:iPhone 的 Safari 浏览器会识别 number 输入类型 。

typeof '123';
typeof 123

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题