对比let、const、var的异同
生活随笔
收集整理的這篇文章主要介紹了
对比let、const、var的异同
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
let、const和var的區別
var : 作用域是函數體的全部,聲明變量提升
console.log(num);//undefinedvar num = 2 //循環內變量過度共享for (var i = 0; i < 4; i++) {alert(i);//0,1,2,3}for (var i = 0; i < 4; i++) {setTimeout(function () {alert(i)//4,4,4,4}, i * 100);}循環本身及三次timeout回調均共享唯一的變量i。當循環結束執行時,i的值為4,此時回調尚未被觸發.
所以當第一個timeout執行時,調用alert(i),此時i的值為4,所以最終彈出來的是4.
let聲明的變量擁有塊級作用域,聲明的全局變量不是全局對象的屬性,聲明的變量直到控制流到達該變量被定義的代碼行時才會被裝載,用let重定義變量會拋出一個語法錯誤
var j = 100;for (let i = 0; i < 4; i++) {console.log(j)//not defined,暫時性死去,即使在該作用域外已經存在這個變量,如果作用域內需要使用 let、 const 再次聲明,則必須提前,否則無法使用,直到聲明后才可以使用setTimeout(function () {alert(i)//0、1、2、3,塊級作用域}, i * 100);let j = 0;//let j = 2;//SyntaxError,重定義變量會拋出一個語法錯誤console.log(j)//0,0,0,0}window.i//undefined,不是全局對象的屬性const聲明的變量與let聲明的變量類似,它們的不同之處在于,const聲明的變量只可以在聲明時賦值,不可隨意修改,否則會導致SyntaxError(語法錯誤).
const num = 1;num = 2;// Assignment to constant variable總結
以上是生活随笔為你收集整理的对比let、const、var的异同的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Kafka消费者APi
- 下一篇: Mozilla开发全新的公开网络API