js變數 var 、let 、const的區別:
1.基本區別
(1)var a = 10;
(2)a = 15;
(3)var a = 20;
是可以的,var可以重複定義重複賦值
(1)let a = 10;
(2)a = 15;
(3)let a = 20;
步驟(3)就是不可以的,let不能重複定義,但是可以重複賦值
(1)const a = 10;
(2)a = 15;
(3)const a = 15;
步驟(2)、(3)就是不可以的,const不能重複定義,不能重複賦值
2.變數提公升
首先要明確一定js**不是一行一行往下執行的
js**執行分為兩個階段:
(1)編譯(變數宣告發生在編譯階段)
(2)執行
下面兩段**:
**一:console.log(a) ; var a = 10 ;
|等價於
var a ; console.log(a) ; a = 10 ;
正確結果:undefined
**二:a = 10 ; console.log(a) ; var a;
|等價於
正確結果:10
這就是所謂的變數提公升,變數會放在所在作用域的最前面進行編譯,然後執行後面的**
3.暫時性死區
let屬於塊級變數
由於let不能進行變數提公升所以造成的暫時性死區,只要塊級作用域內存在let命令,它所宣告的變數就繫結在這個區域,不再受外部的影響。總之,在**塊內,使用let命令宣告變數之前,該變數都是不可用的,這在語法上成為暫時性死區。
js關於變數宣告 var let const 區別
關於定義 宣告 變數 es6之前定義變數是用 var 那麼var有什麼問題嗎,如果但但從變數上來說是沒有問題的,var是variable的縮寫,英文翻譯是變數。var問題 1.汙染全域性 之前定義迴圈的方式 for var i 0 i 10 i alert i 有一天突然運營檔案,這個時候彈出的是 ...
var let const宣告變數的區別
說是特點,不如說是缺點 var在全域性宣告的變數會自動掛載到頂層物件window上 var宣告變數,存在變數提公升的現象 console.log a undefined var a 1 console.log a 1 複製 以上 可以這樣理解 var a console.log a a 1 cons...
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...