javascript - 一个小数为什么用isNaN和typeof判断不相符?
伊谢尔伦
伊谢尔伦 2017-04-11 10:44:12
[JavaScript讨论组]
var arr = [119.657958,29.108071];
function c(){
  var x = ((Math.random()-0.5)/500).toFixed(6);
  console.log(x);
  return x;
}
let y = c();
console.log(isNaN(y));
console.log(typeof y);
console.log(y+1);  

结果为

为什么y既是数字又是字符串呢

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(5)
大家讲道理

使用isNaN会使用Number进行隐式转换

怪我咯
//toFixed(),返回的就是number Object 的字符串显示,判断其类型使用Object.prototype.toString.call(12.12331.toFixed(3))  
//"[object String]" 其结果就是字符串
//isNaN判断为true
//y+1,将number 1 转换成string,最后就是字符串相加
ringa_lee

toFixed() 的返回值是string类型的

ringa_lee

问题大家都答得差不多啦, 我就是想问楼主这个isNaN()是怎么做到返回true的?

伊谢尔伦

toFixed()返回值是string类型的,输入的值是number类型的

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号