JavaScript 中最大的密碼之一是關閉。他是 FAANG 公司工作面試中許多問題的主題。在本文中,我們將討論柵欄和目標,用簡單的示例說明概念,然後以採訪最大的科技巨頭之一的示例問題結束。
當有人告訴你某事是或不是項目的一部分時,這是什麼意思?
我想想想潛望鏡或望遠鏡當我想到這個問題的答案時。這些工具向我們展示了他所擁有的鏡頭範圍內的各種事物:他在領域中。如果它超出範圍,您將無法看到鏡頭的直徑。並且不可能照亮直徑之外的東西。當我們討論 JavaScript 中三種非常重要且不同類型的範圍時,您應該考慮這一點:本地、全局和詞法範圍。
本地範圍
本地範圍是最小的我們今天要討論的三個範圍。當我們聲明一個函數時,任何用方括號 ({}) 括起來的東西都被認為是該函數的局部變量。當 JavaScript 引擎讀取函數時,它會聲明變量;當它結束時,它會銷毀變量。
可以看到,當“console.log()”調用greeting函數的結果時,我們可以訪問到WebsiteName之後發揮了作用。這為我們提供了我們正在尋找的“Hello Karma Career”通道。如前所述,函數中聲明的變量的 console.log () 會生成錯誤,因為它無法定義.
,WebsiteName未定義的原因是因為變量在調用時在函數內部創建,然後在執行終端指令時銷毀。函數外部的任何東西都無法訪問函數內部的東西,除非它具有特定的配置。
全局範圍
下一個字段幾乎是該短語的字面翻譯。全局範圍採用在函數外部聲明的元素並將它們保留在空格中所有腳本、方法和函數都可以訪問它們並將它們用於自己的邏輯。
如果console.log()
在代碼的末尾計數,上面的代碼會做什麼?你希望會發生什麼?