作用域:全域性或區域性
var的作用域可以是全域性或是區域性,以下分四種情況說明:
(1).當var關鍵字宣告於函式內時是區域性變數,此時在函式外訪問會報錯。
(2)當var關鍵字宣告於函式外時是全域性變數,此時不論在函式外部還是內部都可以訪問到。
(3)當var關鍵字第一次宣告變數於函式外時是全域性變數,並且在函式內又使用var關鍵字宣告了同一名字的變數,那麼後宣告這個是區域性變數只作用於函式內,對函式外第一次宣告的變數不影響。
(4)當var關鍵字第一次宣告變數於函式外時是全域性變數,並且在函式內直接訪問賦值了,那麼此變數即是宣告的那個變數。
var定義的變數可以修改,如果不初始化會輸出undefined,但不會報錯。
作用域:區域性(塊級作用域)
let是塊級作用域,函式內部使用let定義後,對函式外部無影響,在同一塊域內let不可重複宣告
作用域:區域性(塊級作用域)
const定義的變數作為一常量,定以後不可以修改,而且必須初始化。
js中var let const的區別
主要內容是 js中三種定義變數的方式const,var,let的區別。var定義的變數可以修改,如果不初始化會輸出undefined,不會報錯。var a 1 var a 不會報錯 console.log 函式外var定義a a 可以輸出a 1 function change change cons...
JS中,var,let,const的區別
1 var var 定義的變數可以修改,如果不初始化,輸出為undefined,不會報錯。var a 輸出為undefined function num num console.log 寫在fun外的輸出 a 輸出為22 let let 定義的變數可修改,是塊級作用域,函式內部定義了let後,對函式...
js 中var let const的區別
在es5中,宣告變數只有var和function兩種形式。但是因為var宣告的變數會有一定的缺點 內層變數可能覆蓋外層變數的問題以及用來計數的迴圈變數洩露為全域性變數 es6提出了使用let和const宣告變數。var宣告的變數存在變數提公升 將變數提公升到當前作用域的頂部 即變數可以在宣告之前呼叫...