日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

和push的区别_还没有理解let 和 const的用法和区别吗,几百字让你立马搞懂

發布時間:2025/3/8 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 和push的区别_还没有理解let 和 const的用法和区别吗,几百字让你立马搞懂 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文主要講解ES6中變量的相關操作,變量的命名, 講解 var、 let 、 const 三者的區別

正文

ES6中的 let 和 const 都是用來聲明變量的, 他們與 var 有所區別

let 命令

我們都知道在for循環中,我們命名的變量 i 一般都只是為了在這個循環中使用,才臨時命名的, 我們希望循環結束后,這個變量就消失, 但是卻相反,用 var 命名的變量,在 for 循環結束后并不會銷毀,而會存在于全局中。

for(var i=0; i<5; i++) {console.log('循環'+ i) } console.log(i) /* 輸出結果 */ 循環1 循環2 循環3 循環4 5 // 這里是循環外輸出的i

但是如果我們在 for 循環中,用到 let 去命名變量會怎么樣呢?

for(let i=0; i<5; i++) {console.log('循環'+ i) } console.log(i)/* 輸出結果 */ 循環1 循環2 循環3 循環4 undefined // 這里是循環外輸出的i,顯示未定義

這樣的話就解決了因為 var 命名導致的變量泄露的問題了, 其實它的本質就是作用域, let 只作用于他自身所在的代碼塊內,而 var 是針對全局都有效的。例如這一個簡單的例子:

{let i = 1var n = 2 } console.log(i) console.log(n)/* 輸出結果 */ undefined 2

可以看到, let 命名的變量只存在于那個代碼塊內,到外部就訪問不到了,而 var 就是針對全局命名的。

const 命令

const 和 let 類似,也是命名的變量只能在它所在的代碼塊內能被訪問得到,到外部就無法被訪問到,但是 const 與 let 的區別就在于, const 命名的變量是一個只讀變量,簡而言之就是命名了就無法在后面被修改,例如這個例子:

const a = 'apple' let b = 'orange'a = 'watermelon' b = 'banana'/* 輸出結果 */ a = 'watermelon'^

顯而易見, 系統會直接報錯, 因為 const 命名的變量 a 是無法改變的, 后續無法對其進行賦值。

其實 const 命名變量以后, 也不是說就真的無法改變了, 因為const命名時其實是把箭頭指向了內存中的一個對象, 只要不改變這個對象地址, const 命名的變量還是可以變化的,例如:

const list1 = []list1.push('變化1')console.log(list1)// ['變化1']

可以看到 list1.pish(' 變化1 ') 不會改變 變量 list1在內存中的地址。

但是 list1 = [ '變化1' ] 就會改變 list1 在內存中的地址,所以會報錯

const list1 = []list1 = ['變化1']console.log(list1)// 報錯:list1 = ['變化1']^

結束語

這就是 let 和 const 的簡單應用,希望這篇文章對大家能有所幫助,我是Lpyexplore,一個因python爬蟲而轉入前端的程序員,關注我,帶你爬蟲過程中學習Web。公眾號:Lpyexplore的編程小屋

總結

以上是生活随笔為你收集整理的和push的区别_还没有理解let 和 const的用法和区别吗,几百字让你立马搞懂的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。