扫码关注官方订阅号
我输入数字 控制台打印出来typeof的结果还是string 这是为什么
小伙看你根骨奇佳,潜力无限,来学PHP伐。
因为你取出来的内容都是字符串形式的啊,你eval(value)试试
因为input.value取到的值就是字符串类型的。
var value = +input.value;这样就 OK 了
input.value获取的值默认为string类型,因此获取到的1其实是'1',接楼上的,在var value=+input.value的过程中,因为+的存在,产生了一个隐式转换,所以input.value都转换成了number类型
1
'1'
var value=+input.value
#input 中的值一定是个字符串,所以你 typeof 之后是 string。如果你想要判断是否全为数字,可以使用正则进行校验。
#input
typeof
string
/^\d+$/.test('') // false /^\d+$/.test('123a') // false /^\d+$/.test('123') // true
+'123'===123
其实你在定义的时候,就已经定义 值是字符串类型的了。
我特意试了一下input type类型改成number, 但判断后类型也是string。
w3c上有个 number类型的提示,我没测试。提示:iPhone 的 Safari 浏览器会识别 number 输入类型 。
isNaN
typeof '123';和typeof 123
typeof '123';
typeof 123
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
因为你取出来的内容都是字符串形式的啊,你eval(value)试试
因为input.value取到的值就是字符串类型的。
var value = +input.value;
这样就 OK 了
input.value获取的值默认为string类型,因此获取到的
1其实是'1',接楼上的,在var value=+input.value的过程中,因为+的存在,产生了一个隐式转换,所以input.value都转换成了number类型#input中的值一定是个字符串,所以你typeof之后是string。如果你想要判断是否全为数字,可以使用正则进行校验。+'123'===123
其实你在定义的时候,就已经定义 值是字符串类型的了。
我特意试了一下input type类型改成number, 但判断后类型也是string。
w3c上有个 number类型的提示,我没测试。
提示:iPhone 的 Safari 浏览器会识别 number 输入类型 。
typeof '123';和typeof 123