为什么不可以用第二种方法,第一种方法正确吗?

为什么不可以用第二种方法,第一种方法正确吗?

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" />
    <title>函数定义的位置</title>
</head>
<body>
<script type="text/javascript">
//在此处补充代码
    function add(num1,num2){
        function isNumber(num1,num2){
            if(isNaN(num1)||isNaN(num2)){
                 return alert("请输入数字类型的参数");
            }else{
                document.write(num1+num2);
            }
        }
    isNumber(num1,num2);
    }
    add(1,"a");
</script>
</body>
</html>
------------------------------

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" />
    <title>函数定义的位置</title>
</head>
<body>
<script type="text/javascript">
//在此处补充代码
    function add(num1,num2){
        function isNumber(num1,num2){
            if(isNaN(num1)||isNaN(num2)){
                 return alert("请输入数字类型的参数");
            }else{
                return num1+num2;
            }
        }
    isNumber(num1,num2);
    }
    document.write(add(1,"a"));
</script>
</body>
</html>

正在回答

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

1回答

第一种方法是对的哦 , 第二种方法点击确定后会输出undefined ,是因为 , 输出的是函数的调用 ,也就是函数返回的结果 , 当页面打开时 , 调用函数已经返回弹窗了 , 点击确定后弹窗消失 ,所以返回undefined . 并不是错误哦 ,只是找不到返回值了 , 同学使用第一种方法就行 .

祝学习愉快 ,望采纳

  • qq_哦_36 提问者 #1
    还不是很懂,你所说的第二个的意思
    2018-08-23 18:15:29
  • 好帮手慕夭夭 回复 提问者 qq_哦_36 #2
    document.write(add(1,"a"));中函数add(1,"a")是自动调用的 ,调用后弹出弹窗 . 当你点击确定后才执行 document.write() , 函数add并没有返回值 ,所以为undefined . 同学可以给函数add末尾加一个 return "xx" , 随便返回一个内容 ,就能明白了哦
    2018-08-23 18:22:59
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
HTML5与CSS3实现动态网页 2018
  • 参与学习       1887    人
  • 提交作业       4643    份
  • 解答问题       5760    个

有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。

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

在线咨询

领取优惠

免费试听

领取大纲

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