39918


if（i = 0) でも 以下のJavaScriptコードが内容を実行するのはなぜですか？ if( "==")でなければならないことを知っていますが。
"I'm"と "A" "A" "A"...という出力を得ることができます。PythonやJavaで見たことがないと思います。

[code]

    function titleCase(str) {
          var array = str.split(" ");
          var str1 = "";
          var i = 0;
          while(i < array.length){
              str = array[i]
              if(i = 0){
                   console.log(str.charAt(0).toUpperCase() + str.substring(1));
              }else{
                   console.log(console.log(str.charAt(0).toUpperCase() + str.substring(1)));
              }
              i++;
          }
          console.log(str1)
        }
        
    titleCase("I'm a little tea pot");
[/code]


CC BY-SA 3.0
2017-11-28T15:10:02.797
39917
2017-11-28T15:58:54.683
2017-11-28T15:24:02.407
25766
25766
question
javascript
java script if else statement if i "=" 0でも数回出力する。


`if(i = 0)`で毎回iに0が代入されてるのに、whileを抜ける条件が『array.lengthより大きくなったら』だからです。  
iは1までしか増えないので永遠にloopを抜けれません。

* * *

strを取得するタイミングではiは1なので、strにはaが入ってます。  
if文でiは0になります。

if文は、`i =
0`の結果である0を評価します。0はfalseとして扱われるので、`console.log(console.log(str.charAt(0).toUpperCase()
+ str.substring(1)));`しか実行されませんね。

と、いうわけで2回目のloop以降は、永遠にAが出力され続けませんか？


CC BY-SA 3.0
2017-11-28T15:52:24.683
39918
2017-11-28T15:58:54.683
2017-11-28T15:58:54.683
2383
2383
39917
answer