在這段視頻中，我們要討論一個名為範圍在JavaScript的概念。
範圍是指一些代碼在被執行的情況下。
所以，無論我們有一些代碼，讓我們說這是一個叫招呼函數中。
該代碼是在一個特定的上下文中運行。
因此它可能有一些變量，可能有一些性質和範圍是指任何變量和屬性都在該函數可見。
而這可能是另一種函數內，或者如果我們有嵌套對方的內部功能不同。
這是你可以做的。
我們可能有不同的範圍和不同的變量是可見的。
因此，這將是有意義的幾個例子。
這絕對是一個非常困難和複雜的話題，但我會盡我所能來簡化它。
讓我們先從這裡簡單的東西。
聲明函數做數學和所有做數學我們要做的就是聲明變量x等於40，然後它會取消該日誌X ..
因此，讓我們跑做數學，他們得到40打印出來。
所以在這個範圍內，我們將稱之為這個函數的內部x等於40。
然而，功能之外，如果我嘗試和接入點¯x你能指望什麼發生。
我得到它告訴我X不是定義的錯誤。
那麼，這說明我們的是，我們有這個功能的內部的兩個不同的範圍是一個上下文。
X在這裡，但外面那定義，我們稱之為全球範圍內我們沒有任何函數內部。
當我X型我得到一個錯誤，因為它不知道X是什麼。
這不是在此範圍內可見。
所以，如果我們定義x對於x等於就讓我們稱之為低。
現在，如果我訪問×表示我只是在全球範圍內，我得到這個功能之外。
你好。
因此，在這種情況下，X是打招呼。
但是，如果我跑做數學再次你有什麼期望發生這一次。
它仍然是40這樣的背景下內部。
所以這是非常重要的。
當我們創建一個函數它有自己的範圍，自己的一組變量。
這並不意味著儘管這不是一個函數，我們不能訪問的功能之外定義的變量。
所以，我會告訴你一個例子。
我要在這裡清除一切，這一次讓我們使用一個變量Y變量y等於99。
因此，在全球範圍內我可以訪問年。
現在，如果我宣布一個功能讓我們把這個做更多的數學，如果我想取消該日誌。
為什麼你認為會有一個錯誤。
或將這項工作就好了。
讓我們試一下做更多的數學括號。
這給了我99。
那麼，在這裡這說明我們的是，當我們在函數外部定義的東西，我們仍然有函數內訪問它。
想到這作為一個孩子的範圍。
這是更具體的它向下鑽取到一個更深的層次和範圍的兒童有機會獲得的東西在父範圍內找到。
因此，如果這個比喻可以幫助你繼續前進，並運行它。
但基本上概括起來講，如果我們定義的函數的變量外，我們可以用它在函數內部。
但相反的是不正確的。
因此，這裡的另一個例子。
如果裡面做更多的數學我真正改變y的值。
所以我說，為什麼等於100。
然後，我打印年。
你認為在這種情況下發生的。
這是一個嘗試。
所以，讓我們來看看y是現在什麼。
這是99。
如果我去做更多的數學它打印出100。
所以裡面的函數y是一百它打印出來100。
但如何在函數外。
如果我只需鍵入Y.會發生什麼
這也是100。
因此，這裡發生的事情是我宣布y個第一'99作為在全球範圍內的功能之外。
然後裡面的功能我改年。
因此，這沒有宣布新的變量y的範圍，它實際上發現，被宣布了這裡的老之一，它改變了它。
所以在這裡。
為什麼一百外面為什麼也是100。
因此，這裡是一個例子，讓我們清楚這一切。
讓我們做一個變量短語等於高那裡，然後讓我們的函數做一些事情。
我知道這些名字並不十分創意，而不是做一些事情我要去嘗試改變。
我要提出一個新的VAR短語等於告別。
再下一行我要打印。
那你想到會在這裡發生。
如果我們運行做一些它告別打印。
那麼，告訴我們是不是做一些A的等於再見。
但它的外面是什麼句話等於它仍然高那裡。
因此，通過添加迄今為止這裡VAR短語再見等於。
這使得我們一個新的變量，而不是使用這裡定義了的。
這使得只存在於這個範圍裡面只有做東西措辭再見新詞變量。