老师你好!

老师你好!

<!DOCTYPE html>

<html lang="zn">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>函数定义练习2</title>

</head>

<body>

    <script>

        function add(number1,number2){

            function isNumber(){

                if(isNaN(number1) || isNaN(number2)){

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

                }else{

                    return Number(number1) + Number(number2);

                }

            }

            return isNumber();//

        }

        console.log(add('20','20'));

    </script>

</body>

</html>

为什么isNumber调用时要加return才可以,不加的话就输出undefined呢?

正在回答

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

2回答

同学你好,  因为函数默认返回的是undefined,示例:

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

打印结果:test没有添加return设置返回值,默认是undefined

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

添加return 设置返回值,那么函数返回的就是执行的值。 示例:

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

打印结果如下:函数返回的是指定值c的值。

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

同学可以试着理解下,另,同学的代码效果实现是对的,继续加油。

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

玮神 2020-02-18 21:36:05

因为函数本身如果没有return指定返回值的话,会默认返回 undifined !

  • 提问者 weixin_慕粉6116347 #1
    什么意思呢不太理解,什么是指定返回值呢?
    2020-02-18 22:22:45
  • 玮神 回复 提问者 weixin_慕粉6116347 #2
    函数执行了是有返回值的,你console.log打印的是函数执行后的返回值,那这个返回值默认是undifined。只有当你用return时,return后面的内容就变成了函数执行后的返回值 你的代码里,add函数里嵌套了一个isNumber函数 isNumber里是有return的,所以它执行后返回值是return后面的内容, 但如果你不在add函数里添加return的话,add函数执行后被打印出来一定是undifined 为什么isNumber调用时要加return才可以,这句话是不对的。isNumber的调用不需要加return,但是你如果想把isNumber调用后的返回值变成add函数的返回值,就要用return isNumber();
    2020-02-19 11:37:40
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星

相似问题

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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