代码是否正确

代码是否正确

    <meta charset="utf-8">

<title>变量、作用域</title>

</head>

<body>

<button>1</button>

<button>2</button>

<button>3</button>

    <script type="text/javascript">

    function add(num,num2){

    function isNumber(){

    if(isNaN(num)&&isNaN(num2)){

    return alert('请传入数字类型的参数')

    }else{

    document.write(num+num2);

    }

    }

    isNumber();

    }


    add(1,2)

    </script>

</body>

</html>


正在回答 回答被采纳积分+1

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

1回答
好帮手慕久久 2020-08-28 09:52:29

同学你好,代码有如下问题:

当计算add("1a",2)时,结果是“1a2”,原因是“isNaN”的判断不对,“&&”代表两个参数都是NaN时,才弹框提示,正确应该是两个参数中,有一个为NaN,就要弹框提示不是数字,修改如下:

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

修改后,计算add("1",2)结果是“12”,原因是isNaN在判断参数是否是NaN时,会尝试将其转成数字再判断,所以isNaN(字符串形式的1)是false,即代码会执行“document.write(num+num2)”,而字符串和数字,执行+运算时,会进行拼接,所以结果是“12”。建议将参数转成数字再计算,如下:

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

如果我的回答帮到了你,欢迎采纳,祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星

相似问题

登录后可查看更多问答,登录/注册

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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