if ( let i = 0; i > 2; i++) と書くとエラーが出るのはなぜですか?

2020年4月5日
ユーザー

お世話になります。
度々の質問でお手数おかけします。

以下、この項のソースですが、

'use strict';
{
  let i = 0; // (1)
  function showTime() {
    console.log(new Date());
    i++; // (2)
    if (i > 2) { // (3)
      clearInterval(intervalId);
    }
  }
  const intervalId = setInterval(showTime, 1000);
}

うえの(1), (2), (3)をまとめて(4)のように書くとエラーが発生します。

'use strict';
{
  function showTime() {
    console.log(new Date());
    if ( let i = 0; i > 2; i++) { // (4)
      clearInterval(intervalId);
    }
  }
  const intervalId = setInterval(showTime, 1000);
}

これはなぜエラーが出るのでしょうか?
また、なぜ元ソースの順序で書かなければならないのでしょうか?

回答よろしくお願いします。

この回答を見るにはプレミアムサービスへの登録が必要です

プレミアムサービスとは?