摘要:相關知識點以及命令聲明的變量只在它所在的代碼塊有效。命令聲明的常量也是不提升,同樣存在暫時性死區(qū)。對于簡單的數(shù)據(jù)數(shù)值字符串布爾值,值就保存在變量指向的那個內(nèi)存地址,因此等同于常量。
es6 相關知識點 let 以及 const
let命令
let 聲明的變量只在它所在的代碼塊有效。
//let 聲明 只在當前作用域有效 var a = []; for (let i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 6 //var 聲明 在全局作用域有效 var a = []; for (var i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 10
let 不存在變量提升,在let聲明之前使用變量,會報錯ReferenceError
// var 的情況 console.log(foo); // 輸出undefined var foo = 2; // let 的情況 console.log(bar); // 報錯ReferenceError let bar = 2;
let 不允許重復聲明
// 報錯 function () { let a = 10; var a = 1; } // 報錯 function () { let a = 10; let a = 1; }
不能在函數(shù)內(nèi)部重新聲明參數(shù)
function func(arg) { let arg; // 報錯 } function func(arg) { { let arg; // 不報錯 } }
const 命令
一旦聲明,常量的值就不改變,只在聲明所在的塊級作用域有效。
const 命令聲明的常量也是不提升,同樣存在暫時性死區(qū)。
本質: const 實際上保證的,不是變量的值不能改動,而是變量指向的那個內(nèi)存地址不得改動。對于簡單的數(shù)據(jù)(數(shù)值、字符串、布爾值),值就保存在變量指向的那個內(nèi)存地址,因此等同于常量。但對于復合類型(引用類型)的數(shù)據(jù)(主要是對象和數(shù)組),變量指向的內(nèi)存地址,保存的只是一個指針, const 只能保證這個指針是固定的,至于它指向的數(shù)據(jù)結構是不是可變的,不能控制。
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/85110.html
摘要:塊級作用域綁定變量聲明的變量聲明與其他的一些計算機語言不同,在類的語言中,變量總是在被聲明的地方創(chuàng)建而在中變量創(chuàng)建的位置取決于你如何聲明它,為我們提供了新的聲明方式用來讓開發(fā)者能夠更好的控制變量的作用域我們通過聲明的變量,無論其聲明位置在哪 塊級作用域綁定 1.變量聲明 JS的變量聲明與其他的一些計算機語言不同,在類C的語言中,變量總是在被聲明的地方創(chuàng)建;而在JS中變量創(chuàng)建的位置取決于...
摘要:變量和常量的聲明一般的聲明,不在函數(shù)內(nèi)就是全局變量,值可以是基本和引用值,可以隨時修改和刪除語法同一個作用域的聲明,只要有同樣的聲明都會報錯,只能修改值語法,和一樣,但是不能更改值以上兩個語法都不存在變量提升的效果直接使用的話,直接引用錯誤 變量和常量的聲明 var a = 34; //一般的聲明,不在函數(shù)內(nèi)就是全局變量,值可以是基本和引用值,可以隨時修改和刪除 ...
摘要:注意看注釋很粗很簡單,我就是一程序員姓名,年齡,請聯(lián)系我吧是否保留注釋定義分隔符,默認為對于轉成,則需要先獲取,對于這部分內(nèi)容,做一個簡單的分析,具體的請自行查看源碼。其中的負責修改以及截取剩余模板字符串。 通過查看vue源碼,可以知道Vue源碼中使用了虛擬DOM(Virtual Dom),虛擬DOM構建經(jīng)歷 template編譯成AST語法樹 -> 再轉換為render函數(shù) 最終返回...
摘要:塊級作用域存在于函數(shù)內(nèi)部塊中字符和之間的區(qū)域和塊級聲明用于聲明在指定塊的作用域之外無法訪問的變量。和都是塊級聲明的一種。值得一提的是聲明不允許修改綁定,但允許修改值。這意味著當用聲明對象時沒有問題報錯臨時死區(qū)臨時死區(qū),簡寫為。 塊級作用域的出現(xiàn) 通過 var 聲明的變量存在變量提升的特性: if (condition) { var value = 1; } console.lo...
摘要:聲明的變量存在變量提升,聲明的變量不存在變量提升。聲明的變量允許重新賦值,聲明的變量不允許重新賦值。注意跨腳本聲明重復變量也會報錯。中出現(xiàn)的任何元素在聲明中出現(xiàn),語法錯誤。中的是如此的怪異。對中的聲明進行實例化。 我在上一篇文章javascript中詞法環(huán)境、領域、執(zhí)行上下文以及作業(yè)詳解中的最后稍微提到了有關var、let、const聲明的區(qū)別,在本篇中我會重點來分析它們之間到底有什么...
閱讀 1834·2023-04-26 02:51
閱讀 2867·2021-09-10 10:50
閱讀 3068·2021-09-01 10:48
閱讀 3633·2019-08-30 15:53
閱讀 1828·2019-08-29 18:40
閱讀 415·2019-08-29 16:16
閱讀 2039·2019-08-29 13:21
閱讀 1825·2019-08-29 11:07