为了账号安全,请及时绑定邮箱和手机立即绑定

一个js面试题

一个js面试题

慕哥9229398 2018-08-01 17:05:19
function convert(s) {    console.log(s);//hi    s +=s.toUpperCase();    console.log(s);//hiHI}function funny(s) {    convert(s);    console.log(s);//hi}funny('hi');//求问为什么第三个是hi吗?为什么不是hiHI
查看完整描述

3 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

.......你的变量是局部变量,你convert 函数没有返回,funny中的s 变量,并没有被改变,当然还是hi了。。

查看完整回答
反对 回复 2018-08-04
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

传入convert()的s是值传递,并不会修改funny()中的s的值。所以在退出convert()不变.

查看完整回答
反对 回复 2018-08-04
?
狐的传说

TA贡献1804条经验 获得超3个赞

  function convert(otherStr) {
        console.log(otherStr);//hi
        otherStr += otherStr.toUpperCase();
        console.log(otherStr);//hiHI
    }    function funny(str) {
        convert(str);
        console.log(str);//hi
    }
    funny('hi');

不知道这样是不是能看明白一点

另外如果想第三个想输出hiHI可以吧代码改成如下

function convert(otherStr) {        
            console.log(otherStr);//hi
        otherStr += otherStr.toUpperCase();        
        console.log(otherStr);//hiHI
        return otherStr
    }    
function funny(str) {        
        //用一个变量来接收convert返回的值,当然也可以不接收直接打印出来
        var res = convert(str);        
        console.log(res);//hiHI
    }
    funny('hi');


查看完整回答
反对 回复 2018-08-04
  • 3 回答
  • 0 关注
  • 1165 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信