摘要:和的區(qū)別作用域是函數(shù)體的全部聲明變量提升循環(huán)內(nèi)變量過度共享循環(huán)本身及三次回調(diào)均共享唯一的變量。
let、const和var的區(qū)別
var : 作用域是函數(shù)體的全部,聲明變量提升
console.log(num);//undefined var num = 2 //循環(huán)內(nèi)變量過度共享 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); }
循環(huán)本身及三次timeout回調(diào)均共享唯一的變量i。當(dāng)循環(huán)結(jié)束執(zhí)行時,i的值為4,此時回調(diào)尚未被觸發(fā).
所以當(dāng)?shù)谝粋€timeout執(zhí)行時,調(diào)用alert(i),此時i的值為4,所以最終彈出來的是4.
let聲明的變量擁有塊級作用域,聲明的全局變量不是全局對象的屬性,聲明的變量直到控制流到達(dá)該變量被定義的代碼行時才會被裝載,用let重定義變量會拋出一個語法錯誤
var j = 100; for (let i = 0; i < 4; i++) { console.log(j)//not defined,暫時性死去,即使在該作用域外已經(jīng)存在這個變量,如果作用域內(nèi)需要使用 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聲明的變量只可以在聲明時賦值,不可隨意修改,否則會導(dǎo)致SyntaxError(語法錯誤).
const num = 1; num = 2;// Assignment to constant variable
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/97893.html
摘要:用聲明的變量,其可用范圍在當(dāng)前執(zhí)行上下文。在函數(shù)外聲明的變量,其作用范圍是全局。拋出語法錯誤錯誤信息未捕獲的異常標(biāo)識符已經(jīng)被聲明過。例如輸出照例,命名規(guī)范指出我們應(yīng)該用大寫字母聲明常量。為了讓代碼長期可維護(hù),命名規(guī)范還是值得遵守的。 轉(zhuǎn)載請注明出處:葡萄城官網(wǎng),葡萄城為開發(fā)者提供專業(yè)的開發(fā)工具、解決方案和服務(wù),賦能開發(fā)者。原文出處:https://dzone.com/articles/...
摘要:變量常量綁定無特定關(guān)鍵字直接設(shè)值將一個文字列放到名為的變量里的類型由文字列上面定義的正則表達(dá)式變成了整數(shù)這里就帶來一個在大工程里很容易帶來困擾的問題理解代碼不得不受制于類型極易變的變量要理解代碼所必需的工作量極大可變變量前綴將變量與 變量(常量)綁定 python無特定關(guān)鍵字,直接設(shè)值a = r^s*(d{4}-d{2}-d{2})s{1,2}(.+)$ # 將一個文字列放到名為a的...
摘要:和都能夠聲明塊級作用域,用法和是類似的,的特點是不會變量提升,而是被鎖在當(dāng)前塊中。聲明常量,一旦聲明,不可更改,而且常量必須初始化賦值。臨時死區(qū)臨時死區(qū)的意思是在當(dāng)前作用域的塊內(nèi),在聲明變量前的區(qū)域叫做臨時死區(qū)。 主要知識點有:var變量提升、let聲明、const聲明、let和const的比較、塊級綁定的應(yīng)用場景showImg(https://segmentfault.com/img...
摘要:沒有聲明的情況和都能夠聲明塊級作用域,用法和是類似的,的特點是不會變量提升,而是被鎖在當(dāng)前塊中。聲明常量,一旦聲明,不可更改,而且常量必須初始化賦值。臨時死區(qū)的意思是在當(dāng)前作用域的塊內(nèi),在聲明變量前的區(qū)域叫做臨時死區(qū)。 本章涉及3個知識點,var、let、const,現(xiàn)在讓我們了解3個關(guān)鍵字的特性和使用方法。 var JavaScript中,我們通常說的作用域是函數(shù)作用域,使用var聲...
閱讀 2535·2023-04-26 02:57
閱讀 1417·2023-04-25 21:40
閱讀 2188·2021-11-24 09:39
閱讀 3568·2021-08-30 09:49
閱讀 772·2019-08-30 15:54
閱讀 1178·2019-08-30 15:52
閱讀 2092·2019-08-30 15:44
閱讀 1282·2019-08-28 18:27