javascript - 函数为什么返回两次?;
迷茫
迷茫 2017-04-11 13:27:24
[JavaScript讨论组]

function f(num1,num2){

            if(num1
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(4)
高洛峰
function f(num1,num2){

    if(num1<num2){
        return alert(num1);//这里弹第一次
    }else{
        return alert(num2);
    }
 
    
}
alert(f(1,2));//这里弹第二次

你的本意应该是这样的

function f(num1,num2){

    if(num1<num2){
        return num1;//返回该数字
    }else{
        return num2;
    }
 
    
}
alert(f(1,2));//这里弹出显示返回值
伊谢尔伦

return alert(1);

alert(1); //弹1

retrun undefined;

高洛峰

首先他先执行了你的f函数然后你return 了alert()这时候通过判断你肯定会执行一个alert 并return了undefined 在全局中你alert了f函数的返回结果undefined;你应该去掉alert(f()),直接执行f(1,2),或者f函数中不要return alert 直接return 你的num

伊谢尔伦

简单来说,alert重复了,你把代码改成

if (num1>num2)
{
    return num1
}
else
{
    return num2
}

就可以了
因为alert没有返回值,你在代码里return alert()会先对alert进行求值,求值的过程中会弹出提示框,求值结果为undefined ,函数再返回undefined ,然后在函数外部alert(f()),f()的返回值为undefined ,所以alert出来的自然也是undefined

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

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