var let const詳解與區別

2021-10-14 04:08:09 字數 2769 閱讀 2622

二、let

三、const

總結在函式內宣告視為區域性變數,當函式結束時,該變數就被銷毀

function testvar()

testvar()

; console.

log(i)

;//報錯

<

/script>

在函式外宣告或直接省略 var(不推薦)則視為全域性變數

var y =10;

//推薦

function testvar2()

function testvar1()

testvar()

;//要呼叫

console.

log(i)

;//10

<

/script>

全域性宣告屬於 window 物件的屬性

var i =10;

console.

log(window.i)

;//10

<

/script>

使用 var 關鍵字宣告的變數會自動提公升到函式作用域頂部

即在函式作用域中,先將var關鍵字宣告的變數統一進行宣告,然後在按照順序執行語句

function testvar()

testvar()

;//等價於

function testvar()

testvar()

;<

/script>

在同乙個作用域中,允許重複宣告同乙個變數,

var i =20;

var i;

console.

log(i)

;//20;

//結合宣告提公升,等價於

var i;

//宣告提公升

var i;

//宣告提公升

i =20;

//按照順序執行語句

console.

log(i)

;<

/script>

相信你已經懂了什麼叫宣告提公升了

let 宣告的變數作用於塊級作用域,僅僅在自己的所在的{}中有效,脫離了{},該宣告銷毀。

if(true)

console.

log(i)

;//報錯

<

/script>

當 let 宣告的變數在函式外宣告,其作用域在整個 script 中,但它並不屬於 window 物件的屬性

let i =10;

function testlet()

testlet()

;<

/script>

function testlet()

testvar()

;<

/script>

在同乙個作用域中,不允許重複宣告同乙個變數

let i =10;

let i =20;

//報錯

console.

log(i)

;<

/script>

與 let 一樣,都是作用與塊級作用域,全域性不屬於 window 物件的屬性,不能進行冗餘宣告,這裡就不舉例了。說一下不同的

必須賦初值

const i;

//報錯

console.

log(i)

;<

/script>

不允許修改

const i =10;

i =20;

//報錯

console.

log(i)

;<

/script>

允許修改物件內部的屬性,但不允許直接重新賦值。

const person =

; person.name =

'jack'

; person.name =

'mark'

; console.

log(person.name)

;//'mark'

<

/script>

const person =

; person =

;//報錯

console.

log(person.name)

;<

/script>

var 、let 、const 都能賦任意型別的變數

var 宣告的範圍為函式作用域,而 let 和 const 宣告的範圍是塊級作用域(最大的區別)

var 全域性變數屬於 window 物件的屬性,而 let 與 const 不屬於

var 允許變數提公升,而 let 與 const 不允許

在同一作用域中 var 可以進行重複宣告,而 let 與 const 不允許。

相比於 let ,const 作用於常量必須賦初值且一旦宣告不允許改動,但作用於物件來說,則允許改變物件內的屬性值。

js關於變數宣告 var let const 區別

關於定義 宣告 變數 es6之前定義變數是用 var 那麼var有什麼問題嗎,如果但但從變數上來說是沒有問題的,var是variable的縮寫,英文翻譯是變數。var問題 1.汙染全域性 之前定義迴圈的方式 for var i 0 i 10 i alert i 有一天突然運營檔案,這個時候彈出的是 ...

面試官 說說var let const之間的區別

故心故心故心故心小故衝啊 在es5中,頂層物件的屬性和全域性變數是等價的,用var宣告的變數既是全域性變數,也是頂層變數 注意 頂層物件,在瀏覽器環境指的是window物件,在 node 指的是global物件 var a 10 console.log window.a 10 使用var宣告的變數存...

詳解git fetch與git pull的區別

git fetch和git pull都可以將遠端倉庫更新至本地那麼他們之間有何區別?想要弄清楚這個問題有有幾個概念不得不提。fetch head 是乙個版本鏈結,記錄在本地的乙個檔案中,指向著目前已經從遠端倉庫取下來的分支的末端版本。commit id 在每次本地工作完成後,都會做乙個git com...