このビデオでは、javascriptでscopeという概念を説明します。
スコープとは、コードが実行されているコンテキストを指します。
だから、どこかにコードがあるところは、それがSay helloという関数の中にあるとしよう。
そのコードは特定のコンテキストで実行されています。
したがって、いくつかの変数があり、いくつかのプロパティを持つ可能性があり、スコープは、その関数で表示される変数とプロパティを参照しています。
そして、それは別の関数の中で異なっているかもしれません。
あなたができることは何ですか。
さまざまなスコープがあり、異なる変数が表示されることがあります。
だから、これはいくつかの例で意味をなさないでしょう。
これは間違いなく難しく複雑なトピックですが、私はあなたのためにそれを簡素化するために最善を尽くします。
ここから簡単なものから始めましょう。
関数宣言関数を宣言すると、変数xが40に等しいと宣言するだけで、そのログXがキャンセルされます。
それで、数学をやり、彼らは40点をプリントアウトしましょう。
このスコープ内のこの関数の内部では、xとは40となります。
しかし、私がXにアクセスしようとすると機能の外で何が起こると思いますか。
私はxが定義されていないと私に伝えるエラーを得る。
だから、これが私たちに示していることは、この関数の中に2つの異なるスコープが1つのコンテキストであるということです。
Xはここで定義されていますが、それ以外は定義されていません。
Xと入力すると、Xが何であるかわからないため、エラーが発生します。
この範囲では表示されません。
だからxをxとすると、これを単にlowと呼ぶことにする。
今私がグローバルスコープ内でこの機能の外にいるときに私がXにアクセスすると、私はそれを取得します。
こんにちは。
だからこの文脈ではXはこんにちは。
しかし、私が再び数学をやり遂げると、今度は何が起こると思いますか？
この文脈の中ではまだ40です。
それは本当に重要です。
関数を作成するときには、独自のスコープを持ち、独自の変数セットを持ちます。
それは、関数の代わりに、関数の外で定義された変数にアクセスすることはできません。
そこで例を紹介します。
私はここですべてをクリアするつもりですが、今度は変数Y変数を使用しましょう。yは9 9に等しいです。
したがって、グローバルな範囲で私はyにアクセスすることができます。
今私が関数を宣言すれば、私はそのログを取り消したいなら、これをもっと計算してみましょう。
なぜあなたにはエラーがあると思いますか？
または、これはうまく動作しますか？
括弧で数学をやってみましょう。
そしてそれは私に99を与えます。
関数の外部に何かを定義すると、その関数の中に関数にアクセスすることができるということです。
これを子スコープと考えてください。
これはより具体的にはより深いレベルにドリルダウンすることであり、子スコープは親スコープで見つけるものにアクセスできます。
もしその類推があなたが先に進み、それを実行するのに役立つならば。
しかし、基本的には、関数の外で変数を定義すると、その関数内で変数を使うことができます。
しかし、その反対は真実ではありません。
ここに別の例があります。
数学の中でyの値を実際に変えるとどうなりますか？
だから私はなぜ100に等しいと言う。
そしてyを印刷します。
この場合、どうなると思いますか？
それは試みです。
だから今yが何であるかを見てみましょう。
それは90です。
そして、私が数学をすると100をプリントアウトします。
したがって、関数yの内部は100にあり、それは100を出力します。
しかし、機能の外側はどうですか？
私がYと入力すればどうなるでしょう。
それはまた100です。
だからここで何が起こったのかというと、私は最初にグローバルスコープ内の関数の外に'99として宣言しています。
そして、関数の中で私はyを変更しました。
したがって、これはスコープ内に新しい変数yを宣言していないので、ここで宣言された古い変数を実際に見つけて変更しました。
それでここに。
なぜ100歳で、なぜ100歳なのか？
ここでもう1つの例を挙げてみましょう。
変数のフレーズを高くして、関数を何かするようにしましょう。
私はこれらの名前がひどく創造的ではなく、何かをする代わりに私は変えようとしていることを知っています。
私は新しいVARフレーズをさようならにするつもりです。
そして次の行で私はそれを印刷します。
だからここで何が起こると思いますか？
私たちが何かをやるなら、それはさようならを印刷します。
だから、私たちに教えてくれるのは、Aのための何かの代わりに、さよならと等しいことです。
しかし、それの外ではそれと同等のフレーズはまだ高いです。
だから、ここにvarフレーズを追加することで、さようならと等しい。
これは、ここで定義したものを使うのではなく、新しい変数にします。
それは、この範疇にのみ存在する新しい句変数を、何かが挨拶されているかどうかの中でのみ作ります。
内部には別れがあります