變數作用域

閱讀時間約 1 分鐘

就是指變數可以被訪問和使用的範圍,來說一下var、let和const的作用域差異。

var :

function example() {
console.log(x); // 輸出: undefined 因為變量提升造成的
var x = 5;
}

  • 函數作用域或全域作用域
  • 可以重複宣告
  • 存在變數提升(hoisting)
  • 變量提升只提升聲明,不提升初始化


let :

if (true) {
let y = 10;
}
console.log(y); // 錯誤: y is not defined,因為已經不在{}裡面

  • 塊級作用域
  • 不可重複宣告
  • 不存在變數提升


const :

const z = 15;
z = 20; // 錯誤: 不可以重新賦值

  • 塊級作用域
  • 不可重複宣告
  • 不可重新賦值 (但對於物件和陣列,其內容可以修改)
  • 不存在變數提升

主要區別 :

作用域 :

  • var: 函數作用域
  • let 和 const: 塊級作用域

重複宣告 :

  • var: 允許
  • let 和 const: 禁止

變數提升 :

  • var: 會被提升
  • let 和 const: 不會被提升(存在暫時性死區)

重新賦值 :

  • var 和 let: 允許
  • const: 禁止(對於基本類型)


參考資料 :

在 JavaScript 中用 var, let, 以及 const 有什麼差別?什麼時候該用哪個? |ExplainThis

    avatar-img
    3會員
    17內容數
    留言0
    查看全部
    avatar-img
    發表第一個留言支持創作者!
    郭欣玫的沙龍 的其他內容
    一開始你先把你的專案push上去後,修改vite.config.ts ,要在裡面新增  base: "/Cart/" (/放自己的專案名稱/) build: {outDir: "docs"}, 接下來你要去你的github setting 裡面 -> Page ->選Deploy fro
    今天要來討論 1 + "1" 。 如果當兩個操作數都是數字時,+ 會執行數字相加。例如,1 + 1 結果是 2。 那如果是"1"+"1",就變成字符串相加變成11。 那我們今天要講的是1 + "1",答案是11,為甚麼呢? 這是一個類型強制轉換,今天當 + 遇到不一樣的類型時,JavaScrip
    首先要安裝vscode : Visual Studio Code - Code Editing. Redefined 安裝後我們就可以把她打開來,接著去檔案 -> 喜好設定 -> 設定檔(預設) -> 你就會看到設定裡面的 settings.json,就可以開始你的設定拉(主要是依照個人的喜好設定
    pure function 是甚麼呢? 最主要兩大特點 : 淺顯易懂的說法就是 : 對於有相同的輸入,就會有相同的輸出。 無副作用 : 不會去修改或依賴外部的狀態。 舉一個例子 : function add(a, b) { return a + b; } function裡面他帶入的
    Node.js是一個JavaScript運行環境。它使用了一個非阻塞、事件驅動的I/O模型,使其非常適合用於數據密集型的即時應用程序。簡單來說,Node.js允許你使用JavaScript來編寫伺服器端代碼。 nvm 安裝nvm Windows : 點擊 Releases · coreybut
    Windows : 下載Git (git-scm.com)並按照指示安裝。 安裝完成後,你可以通過運行以下命令來確認安裝是否成功: git --version 初次設定GIT 接下來就是按照初次設定git,會需要配置你的用戶名和電子郵件地址,這些信息將被記錄在您提交的每個變更中。 git
    一開始你先把你的專案push上去後,修改vite.config.ts ,要在裡面新增  base: "/Cart/" (/放自己的專案名稱/) build: {outDir: "docs"}, 接下來你要去你的github setting 裡面 -> Page ->選Deploy fro
    今天要來討論 1 + "1" 。 如果當兩個操作數都是數字時,+ 會執行數字相加。例如,1 + 1 結果是 2。 那如果是"1"+"1",就變成字符串相加變成11。 那我們今天要講的是1 + "1",答案是11,為甚麼呢? 這是一個類型強制轉換,今天當 + 遇到不一樣的類型時,JavaScrip
    首先要安裝vscode : Visual Studio Code - Code Editing. Redefined 安裝後我們就可以把她打開來,接著去檔案 -> 喜好設定 -> 設定檔(預設) -> 你就會看到設定裡面的 settings.json,就可以開始你的設定拉(主要是依照個人的喜好設定
    pure function 是甚麼呢? 最主要兩大特點 : 淺顯易懂的說法就是 : 對於有相同的輸入,就會有相同的輸出。 無副作用 : 不會去修改或依賴外部的狀態。 舉一個例子 : function add(a, b) { return a + b; } function裡面他帶入的
    Node.js是一個JavaScript運行環境。它使用了一個非阻塞、事件驅動的I/O模型,使其非常適合用於數據密集型的即時應用程序。簡單來說,Node.js允許你使用JavaScript來編寫伺服器端代碼。 nvm 安裝nvm Windows : 點擊 Releases · coreybut
    Windows : 下載Git (git-scm.com)並按照指示安裝。 安裝完成後,你可以通過運行以下命令來確認安裝是否成功: git --version 初次設定GIT 接下來就是按照初次設定git,會需要配置你的用戶名和電子郵件地址,這些信息將被記錄在您提交的每個變更中。 git
    你可能也想看
    Google News 追蹤
    Thumbnail
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
    Thumbnail
    Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
    Thumbnail
    在Python中,有三種變數作用域:全域、區域和封閉。 區域作用域(Local Scope): 在函式內部定義的變數具有區域作用域,它們只能在該函式內部訪問。 例如: def my_function(): local_variable = 10
    Thumbnail
    變異數和共變數分析通常有一些統計的前提假設。如果在進行這些分析時,假設沒有達到滿足,結果將有所偏誤,更可能被審稿者或口委批評。本文首先介紹如何檢測這些假設,然後提出假設不過的解決方法,並附上相關文獻佐證。
    ATFX第四季《交易者雜誌》重磅上線。 作為2023年最後一個季度,ATFX全球分析師們從宏觀走勢出發,以貨幣對、黃金、原油、指數、股市等多個資產著手,為全球投資者解析市場未來趨勢。
    Thumbnail
    看劇的習慣是從小就培養,從一般音樂劇到舞台劇都讓我樂此不彼,只要看到喜歡的就會購票。 聽過的音樂會、看過的劇確實不少,印象深刻的卻也是許多,包含年初看過的如夢之夢、解憂雜貨店、生命中最後的五分鐘、羅密歐與茱麗葉音樂劇、鐘樓怪人音樂劇等,穿梭在這些不同型態的戲劇中彷彿是在尋找自我。 今天的八仙變數
    Thumbnail
    當共變數分析(ANCOVA)違反回歸斜率的同質性假設時,Johnson-Neyman 技術是實驗設計中 ANCOVA 的優秀的替代方法。凃金堂老師寫的實驗研究法與共變數分析有提供完善的Johnson-Neyman程式和講解。本文就是分享個人如何透過實際案例,使用Johnson-Neyman法進行分析
    有一種狀況,URL GET method 有設變數,卻是空值 http://foo.bar.xxx/idol.php?IdolGroup= 這時,變數就算初始化也還是 null, 不會變成預設值
    Thumbnail
    虹彩是天空的變數(x) 她把蔚藍的天空裝扮的更艷麗 蝴蝶是花兒的變數(x) 她讓花兒有了更偉大的夢想 月亮是湖泊的變數(x) 她使湖泊更明媚動人 ~~~ 妳是我今晚的變數(x) 因為~再美的月色若無妳 她的嬌柔也毫無意義~如今 只期待生命中變數(x)的到來 而~妳就是唯一的變數(x)
    Thumbnail
    一、什麼是變數?   變數是指用來代表某一種資料型態的符號,以非數字的符號來表達,可以是英文字母也可以是一個英文單字,不過python有一些英文字母不能被當作變數,我們稱作保留字,例如:False、None、True、and、is、not、or、......,之後會在介紹。
    變數的命名規則 : 只能包含以下字元     ─ 大寫字母(A到Z)     ─ 小寫字母(a到z)     ─ 數字(0到9)     ─ 底線(_) 區分大小寫 開頭只能為字母或底線,不可為數字  以底線開頭會被特殊對待 不能是保留字(關鍵字) 參考文獻: 精通
    Thumbnail
    JavaScript在ES6新增了let, const等宣告變數的方式,其中let, const是block scope的,而var則是function scope。
    Thumbnail
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
    Thumbnail
    Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
    Thumbnail
    在Python中,有三種變數作用域:全域、區域和封閉。 區域作用域(Local Scope): 在函式內部定義的變數具有區域作用域,它們只能在該函式內部訪問。 例如: def my_function(): local_variable = 10
    Thumbnail
    變異數和共變數分析通常有一些統計的前提假設。如果在進行這些分析時,假設沒有達到滿足,結果將有所偏誤,更可能被審稿者或口委批評。本文首先介紹如何檢測這些假設,然後提出假設不過的解決方法,並附上相關文獻佐證。
    ATFX第四季《交易者雜誌》重磅上線。 作為2023年最後一個季度,ATFX全球分析師們從宏觀走勢出發,以貨幣對、黃金、原油、指數、股市等多個資產著手,為全球投資者解析市場未來趨勢。
    Thumbnail
    看劇的習慣是從小就培養,從一般音樂劇到舞台劇都讓我樂此不彼,只要看到喜歡的就會購票。 聽過的音樂會、看過的劇確實不少,印象深刻的卻也是許多,包含年初看過的如夢之夢、解憂雜貨店、生命中最後的五分鐘、羅密歐與茱麗葉音樂劇、鐘樓怪人音樂劇等,穿梭在這些不同型態的戲劇中彷彿是在尋找自我。 今天的八仙變數
    Thumbnail
    當共變數分析(ANCOVA)違反回歸斜率的同質性假設時,Johnson-Neyman 技術是實驗設計中 ANCOVA 的優秀的替代方法。凃金堂老師寫的實驗研究法與共變數分析有提供完善的Johnson-Neyman程式和講解。本文就是分享個人如何透過實際案例,使用Johnson-Neyman法進行分析
    有一種狀況,URL GET method 有設變數,卻是空值 http://foo.bar.xxx/idol.php?IdolGroup= 這時,變數就算初始化也還是 null, 不會變成預設值
    Thumbnail
    虹彩是天空的變數(x) 她把蔚藍的天空裝扮的更艷麗 蝴蝶是花兒的變數(x) 她讓花兒有了更偉大的夢想 月亮是湖泊的變數(x) 她使湖泊更明媚動人 ~~~ 妳是我今晚的變數(x) 因為~再美的月色若無妳 她的嬌柔也毫無意義~如今 只期待生命中變數(x)的到來 而~妳就是唯一的變數(x)
    Thumbnail
    一、什麼是變數?   變數是指用來代表某一種資料型態的符號,以非數字的符號來表達,可以是英文字母也可以是一個英文單字,不過python有一些英文字母不能被當作變數,我們稱作保留字,例如:False、None、True、and、is、not、or、......,之後會在介紹。
    變數的命名規則 : 只能包含以下字元     ─ 大寫字母(A到Z)     ─ 小寫字母(a到z)     ─ 數字(0到9)     ─ 底線(_) 區分大小寫 開頭只能為字母或底線,不可為數字  以底線開頭會被特殊對待 不能是保留字(關鍵字) 參考文獻: 精通
    Thumbnail
    JavaScript在ES6新增了let, const等宣告變數的方式,其中let, const是block scope的,而var則是function scope。