Freecodecamp: `var`はお勧めできません。

作成日 2016年08月13日  ·  3コメント  ·  ソース: freeCodeCamp/freeCodeCamp

チャレンジグローバルスコープと機能には問題があります。
ユーザーエージェントは次のとおりです: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
この問題を再現する方法を説明し、可能であればスクリーンショットへのリンクを含めてください。

私のコード:

// Declare your variable here
var myGlobal = 10;

function fun1() {
  // Assign 5 to oopsGlobal Here

}

// Only change code above this line
function fun2() {
  var output = "";
  if (typeof myGlobal != "undefined") {
    output += "myGlobal: " + myGlobal;
  }
  if (typeof oopsGlobal != "undefined") {
    output += " oopsGlobal: " + oopsGlobal;
  }
  console.log(output);
}

es6 letconst使用を開始する必要があります。 var変数宣言は、バグの可能性があります。

discussing

最も参考になるコメント

@BKinahanよく言えば。

varをいつ使用するか、使用しないかは、必ずしも個々の開発者次第ではありませんが、ほとんどの場合、チームによって異なります。

varletまたはconstに置き換えることができなかった時期は見つかりませんでしたが、最近コードベース全体をリファクタリングして使用するOpenTableのエンジニアと話をしました。 ES2015、そして彼はletまたはconstがバグの原因であり、 varを使用しなければならなかったが、彼はの正確な詳細を思い出せなかったという1つのケースがあると述べましたなぜだったのか。

varを落胆させるべきではないと思います。 varがどのように機能するかを説明し、開発者が悟りへの道を進んだら、開発者に選択させることをお勧めします。

letconstは、いくつかの奇妙な点もあります。気づいていない場合は、いくつかのループを通過する可能性があります(一時的なデッドゾーンを参照)。 これは、煩わしいものですが、 letconst使用を失格にするものではありません。 それは、物事を知ることと同じくらい重要なことを意味します。

全てのコメント3件

letconstなどのES6機能については、現在開発中の新しいカリキュラムトピックで詳しく説明します(こちらをご覧varを使用するときにスコープ/巻き上げによって引き起こされる可能性のある問題も解決します。

今のところ、この課題は、スコーピングの概要と、 varを使用するときに注意すべきいくつかの問題として機能します。また、キャンピングカーは他の(古い)ソースからのコードに出くわす可能性があるため、有用な情報が含まれています。 var (たとえば、レガシーコードなど)を使用するので、説明した問題の簡単な紹介になります。

行を削除するための議論があるかもしれません

変数は常にvarで宣言する必要があります。

または、後でletconstについて学習する際に注意して変更しますが、このトピックの最初の紹介では、この課題は問題ないと思います。

cc @ FreeCodeCamp / issue-moderators考え?

@BKinahanよく言えば。

varをいつ使用するか、使用しないかは、必ずしも個々の開発者次第ではありませんが、ほとんどの場合、チームによって異なります。

varletまたはconstに置き換えることができなかった時期は見つかりませんでしたが、最近コードベース全体をリファクタリングして使用するOpenTableのエンジニアと話をしました。 ES2015、そして彼はletまたはconstがバグの原因であり、 varを使用しなければならなかったが、彼はの正確な詳細を思い出せなかったという1つのケースがあると述べましたなぜだったのか。

varを落胆させるべきではないと思います。 varがどのように機能するかを説明し、開発者が悟りへの道を進んだら、開発者に選択させることをお勧めします。

letconstは、いくつかの奇妙な点もあります。気づいていない場合は、いくつかのループを通過する可能性があります(一時的なデッドゾーンを参照)。 これは、煩わしいものですが、 letconst使用を失格にするものではありません。 それは、物事を知ることと同じくらい重要なことを意味します。

ご入力ありがとうございます。 どちらも良い点です。 これはすべて意見に基づいていると思います。 しかし、私は自分の声明を支持し、不変のデータを使用するように説教し、予期しないデータの変更を防ぐためにimmutable.jsやmoriなどのライブラリを使用します。 ✌️

このページは役に立ちましたか?
0 / 5 - 0 評価