为啥在for循环定义变量newWord只能输出最后一个单词呢?

来源:3-31 编程练习

前端SoEasy

2019-05-01 01:22:11

var str="all time is no time when it is past i am no.1";

            function firToUpperCase(arr){

               var toUpper = arr.split(" ");

               var len=toUpper.length;

               for(var i=0;i<len;i++){

                   var word= toUpper[i];

                   var newWord=" ";

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

                   console.log(newWord);

               }

               return newWord;

            }

            var toUpper= firToUpperCase(str);

            document.write(toUpper);


写回答

1回答

好帮手慕星星

2019-05-01

你好,代码中定义newWord变量后面的分号状态错误,现在是中文状态下的,要换成英文状态的下的才不会报错。

如果将newWord变量定义在for循环中,那么每循环一次,newWord就会重新声明为空字符串,重新开始拼接,所以显示出来的只有最后一个。把变量声明放在for循环外面就可以:

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

祝学习愉快!

0

0 学习 · 40143 问题

查看课程