前のビデオでは、宣言されたオブジェクトの内部にキーワードがない場合、値はグローバルオブジェクトです。
以前のビデオがあなたに少し混乱させてしまった場合に、宣言されたオブジェクトが意味することをすぐに実証しましょう。
ここの資料はかなり挑戦的であることを忘れないでください。
だから、これらのビデオを数回見て、あなたの知識を強化するためのコード例を入力してみてください。
データと呼ばれる空のオブジェクトを作成します。
私がやったことは、データオブジェクトが宣言されるまで存在しなかったオブジェクトとして宣言されていることです。
今度は、このオブジェクトにinstructorというプロパティをアタッチし、値をLTEに設定します。
今私たちが宣言したデータオブジェクトには、内部にelhiの値を持つキーがあります。
これは、宣言されたオブジェクトの内部で言うときに意味するものです。
まだそれがあなたを混乱させるなら、それは大丈夫です。
2番目のルールを調べて、キーワードをオブジェクトの内側に表示すると、それはさらに意味をなされます。
今度は最初のルールを完成させましょう。
ここでは、関数の内部にキーワードを置くと、その値はまだグローバルオブジェクトです。
これはキーワードが宣言されたオブジェクトの内部にあるのでなければグローバルルールが適用されると言ったことを覚えていますが、今は関数の内部にあります。
だから私たちがこの関数を呼び出すとき、返される値はウィンドウオブジェクトです。
さて、最後の例を見てみましょう。
値がグローバルオブジェクトである場合、キーワードにプロパティをアタッチするとどうなりますか？
グローバルオブジェクトとは、さまざまなjavascript環境のウィンドウオブジェクトを意味します。
この値は変更されます。
しかし、私たちがブラウザに入っているので、グローバルオブジェクトはウィンドウオブジェクトです。
次に、この関数の変数をこの関数の変数で見てみましょう。
Personという名前のキーワードにプロパティを添付し、Ellieと同じに設定します。
キーワードはグローバルオブジェクトを参照するため、グローバルオブジェクトに追加するものはグローバル変数になります。つまり、関数外で使用できます。
これは私たちがやりたいことのように思えるかもしれませんが、実際これは非常に悪い習慣です。
変数とスコープがjavascriptでどのように機能するかをすぐに見直しましょう。
私はdogと呼ばれる変数を宣言し、値はRustyと等しいと言っています。
私は次に、肉体と呼ばれる関数を内部で作成し、VARキーワードを使ってpersonという変数を宣言し、それをコードと同じにします。
私はこの変数を関数の中で宣言していたので、それを返すわけではありません。関数の外部にアクセスすることはできません。
しかし、私はグローバルな範囲で私の犬の変数を宣言して以来、私はどこにでもアクセスできます。
これで、関数内のVARキーワードを省略することで、person変数にアクセスできないという問題を回避することができます。
しかし、これは非常に悪い習慣です。
一般的には、複数の関数で使用するすべての変数をコードの先頭に宣言し、値を持たなくても後でそれらの値を関数に代入することがベストプラクティスです。
残念なことに、これはグローバルオブジェクトであるため、関数内で大域変数を誤って宣言するのは非常に簡単です。
例を見てみましょう。
私は間違いと呼ばれる関数を作成しようとしています。これは、文字列に等しいという悪い考え方と呼ばれるキーワードのプロパティを内側に設定します。
うわー。
今私はその関数を呼び出すつもりです。私は私の悪いアイデア変数にアクセスできることがわかります。
私は偶然、グローバル変数を作成しました。
ありがたいことにはいはい5厳密なモードと呼ばれるJavascriptの以前のバージョンが私たちを助けるために追加されました。
Javascriptの開発者は、厳密モードが有効になっている場合にはより適切な対処法を読み込みます。
二重引用符で厳密なuseを追加することで、これを行うことができます。
関数の内部が未定義のときのキーワードthisの値。
グローバルオブジェクトではありません。
つまり、プロパティをその上にアタッチしようとすると、型エラーが発生します。
未定義にプロパティを付けることはできないので、このエラーはかなり見られたかもしれません。
これは、誤ってグローバル変数を作成するのを止め、javascriptのベストプラクティスを使用できるようにします。
このビデオでは、このキーワードを決定するための最初のルールを見直し、誤って関数内でグローバル変数を作成する方法を見ました。
私たちはまた、次のビデオでこの厳しいモードがいかに厳格なミスをしてしまうのを防ぐことができるかを見ました。
2番目のルールについて議論し、宣言されたオブジェクトの内部にあるときのキーワードの値