为什么这个实现不了?我输入参数(3,”xiao“)控制台打印的是 3xiao

为什么这个实现不了?我输入参数(3,”xiao“)控制台打印的是 3xiao

<!DOCTYPE html>
<html lang="zh-CN">
<head>
   <meta charset="UTF-8" />
   <title>函数定义的位置</title>
</head>
<body>
<script type="text/javascript">
   //在此处补充代码
   function add(a,b) {
       if (isNumber(a,b)) {
           return a + b;
       }else return alert("请传入数字类型的参数");
   }
   function isNumber(a,b) {
       if (a!=NaN && b!=NaN){return true;}
       else {return false;}
   }
   console.log(add(3,"true"));
</script>
</body>
</html>

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好, 因为你在isNumber中的判断条件不对, 因为任何变量(包括NaN)与NaN比较返回的都是NaN。所以不可以与NaN比较。 另 else 后面推荐使用{}包括语句, 参考下图修改: 使用isNaN方法判断是否是数字

http://img1.sycdn.imooc.com//climg/5cd7f2ab00017d9707770621.jpg

如果帮助到了你,欢迎采纳!

祝学习愉快~~~

  • 七重人格小疯子 提问者 #1
    老师,那我按照您给的程序,我输入参数(3,true)控制台打印的是 4,为什么不是弹出框啊?
    2019-05-12 19:28:34
  • 同学你好,因为布尔值true会先被强制转换为数值1,然后在使用isNaN方法会返回false, 所以控制台打印出的是4。
    2019-05-12 21:48:44
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师