摘要:相關(guān)知識(shí)點(diǎn)以及命令聲明的變量只在它所在的代碼塊有效。命令聲明的常量也是不提升,同樣存在暫時(shí)性死區(qū)。對(duì)于簡(jiǎn)單的數(shù)據(jù)數(shù)值字符串布爾值,值就保存在變量指向的那個(gè)內(nèi)存地址,因此等同于常量。
es6 相關(guān)知識(shí)點(diǎn) let 以及 const
let命令
let 聲明的變量只在它所在的代碼塊有效。
</>復(fù)制代碼
//let 聲明 只在當(dāng)前作用域有效
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聲明之前使用變量,會(huì)報(bào)錯(cuò)ReferenceError
</>復(fù)制代碼
// var 的情況
console.log(foo); // 輸出undefined
var foo = 2;
// let 的情況
console.log(bar); // 報(bào)錯(cuò)ReferenceError
let bar = 2;
let 不允許重復(fù)聲明
</>復(fù)制代碼
// 報(bào)錯(cuò)
function () {
let a = 10;
var a = 1;
}
// 報(bào)錯(cuò)
function () {
let a = 10;
let a = 1;
}
不能在函數(shù)內(nèi)部重新聲明參數(shù)
</>復(fù)制代碼
function func(arg) {
let arg; // 報(bào)錯(cuò)
}
function func(arg) {
{
let arg; // 不報(bào)錯(cuò)
}
}
const 命令
一旦聲明,常量的值就不改變,只在聲明所在的塊級(jí)作用域有效。
const 命令聲明的常量也是不提升,同樣存在暫時(shí)性死區(qū)。
本質(zhì): const 實(shí)際上保證的,不是變量的值不能改動(dòng),而是變量指向的那個(gè)內(nèi)存地址不得改動(dòng)。對(duì)于簡(jiǎn)單的數(shù)據(jù)(數(shù)值、字符串、布爾值),值就保存在變量指向的那個(gè)內(nèi)存地址,因此等同于常量。但對(duì)于復(fù)合類(lèi)型(引用類(lèi)型)的數(shù)據(jù)(主要是對(duì)象和數(shù)組),變量指向的內(nèi)存地址,保存的只是一個(gè)指針, const 只能保證這個(gè)指針是固定的,至于它指向的數(shù)據(jù)結(jié)構(gòu)是不是可變的,不能控制。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/85110.html
摘要:塊級(jí)作用域綁定變量聲明的變量聲明與其他的一些計(jì)算機(jī)語(yǔ)言不同,在類(lèi)的語(yǔ)言中,變量總是在被聲明的地方創(chuàng)建而在中變量創(chuàng)建的位置取決于你如何聲明它,為我們提供了新的聲明方式用來(lái)讓開(kāi)發(fā)者能夠更好的控制變量的作用域我們通過(guò)聲明的變量,無(wú)論其聲明位置在哪 塊級(jí)作用域綁定 1.變量聲明 JS的變量聲明與其他的一些計(jì)算機(jī)語(yǔ)言不同,在類(lèi)C的語(yǔ)言中,變量總是在被聲明的地方創(chuàng)建;而在JS中變量創(chuàng)建的位置取決于...
摘要:變量和常量的聲明一般的聲明,不在函數(shù)內(nèi)就是全局變量,值可以是基本和引用值,可以隨時(shí)修改和刪除語(yǔ)法同一個(gè)作用域的聲明,只要有同樣的聲明都會(huì)報(bào)錯(cuò),只能修改值語(yǔ)法,和一樣,但是不能更改值以上兩個(gè)語(yǔ)法都不存在變量提升的效果直接使用的話,直接引用錯(cuò)誤 變量和常量的聲明 var a = 34; //一般的聲明,不在函數(shù)內(nèi)就是全局變量,值可以是基本和引用值,可以隨時(shí)修改和刪除 ...
摘要:注意看注釋很粗很簡(jiǎn)單,我就是一程序員姓名,年齡,請(qǐng)聯(lián)系我吧是否保留注釋定義分隔符,默認(rèn)為對(duì)于轉(zhuǎn)成,則需要先獲取,對(duì)于這部分內(nèi)容,做一個(gè)簡(jiǎn)單的分析,具體的請(qǐng)自行查看源碼。其中的負(fù)責(zé)修改以及截取剩余模板字符串。 通過(guò)查看vue源碼,可以知道Vue源碼中使用了虛擬DOM(Virtual Dom),虛擬DOM構(gòu)建經(jīng)歷 template編譯成AST語(yǔ)法樹(shù) -> 再轉(zhuǎn)換為render函數(shù) 最終返回...
摘要:塊級(jí)作用域存在于函數(shù)內(nèi)部塊中字符和之間的區(qū)域和塊級(jí)聲明用于聲明在指定塊的作用域之外無(wú)法訪問(wèn)的變量。和都是塊級(jí)聲明的一種。值得一提的是聲明不允許修改綁定,但允許修改值。這意味著當(dāng)用聲明對(duì)象時(shí)沒(méi)有問(wèn)題報(bào)錯(cuò)臨時(shí)死區(qū)臨時(shí)死區(qū),簡(jiǎn)寫(xiě)為。 塊級(jí)作用域的出現(xiàn) 通過(guò) var 聲明的變量存在變量提升的特性: if (condition) { var value = 1; } console.lo...
摘要:聲明的變量存在變量提升,聲明的變量不存在變量提升。聲明的變量允許重新賦值,聲明的變量不允許重新賦值。注意跨腳本聲明重復(fù)變量也會(huì)報(bào)錯(cuò)。中出現(xiàn)的任何元素在聲明中出現(xiàn),語(yǔ)法錯(cuò)誤。中的是如此的怪異。對(duì)中的聲明進(jìn)行實(shí)例化。 我在上一篇文章javascript中詞法環(huán)境、領(lǐng)域、執(zhí)行上下文以及作業(yè)詳解中的最后稍微提到了有關(guān)var、let、const聲明的區(qū)別,在本篇中我會(huì)重點(diǎn)來(lái)分析它們之間到底有什么...
閱讀 1827·2023-04-26 02:51
閱讀 2860·2021-09-10 10:50
閱讀 3056·2021-09-01 10:48
閱讀 3616·2019-08-30 15:53
閱讀 1823·2019-08-29 18:40
閱讀 410·2019-08-29 16:16
閱讀 2033·2019-08-29 13:21
閱讀 1822·2019-08-29 11:07
极致性价比!云服务器续费无忧!
Tesla A100/A800、Tesla V100S等多种GPU云主机特惠2折起,不限台数,续费同价。
NVIDIA RTX 40系,高性价比推理显卡,满足AI应用场景需要。
乌兰察布+上海青浦,满足东推西训AI场景需要