老师,请问我的问题出在哪?

来源:3-31 编程练习

sunflower426

2019-12-12 16:25:20

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>首字母变大写</title>

</head>

<body>

<script>

    //补充代码\

    function bigword(str){

        var arr=str.split(" "),newStr=arr[i];

        for(var i=o,len=arr.length;i<len;i++){

            var word=arr[i];

            newStr=word.charAt(0).toUpperCase()+word.substr(1);

        }

    }

    var littleword=bigword("all time is no time when it is past");

    document.write(littleword);

</script>

</body>

</html>


写回答

1回答

好帮手慕慕子

2019-12-12

同学你好,运行你的代码,在浏览器中,按下f12键,打开控制台,出现报错信息如下:

http://img.mukewang.com/climg/5df1fcbe09027b0817610079.jpg

原因:在代码的12行将数字0写成了字符o, 导致变量o没有定义出现报错。(老师这里是12行,同学可能是其他行,根据控制台报错信息调试就可以了)

建议修改:

http://img.mukewang.com/climg/5df1fd420967538607340105.jpg

代码中存在的其他问题如下:

  1. newStr初始化值为arr[i],此时的i还为声明,所以newStr值为undefined,后期拼接字符串的效果不对。

    建议修改: 将newStr初始赋值为空字符串

    http://img.mukewang.com/climg/5df1fe380974fce503640083.jpg

  2. for中需要使用+=运算符,对于转换的结果进行字符串拼接, 最后可以拼接一个空格,效果实现会更好。

    http://img.mukewang.com/climg/5df1fe9209154bf208870128.jpg

  3. 最后,需要将拼接好的字符串return出去。

    http://img.mukewang.com/climg/5df1febd09a20c9109670530.jpg

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

0

0 学习 · 36712 问题

查看课程