摘要:聲明變量常量常量,常量的值非復(fù)合型數(shù)據(jù)不可以改變報(bào)錯(cuò)已聲明為一個(gè)常量,常量一旦聲明只可讀,不允許改變,去修改這個(gè)常量就會(huì)拋出錯(cuò)誤。
const聲明變量(常量):
1、常量,常量的值(非復(fù)合型數(shù)據(jù))不可以改變
const temp = 10; temp = 5;//報(bào)錯(cuò): Assignment to constant variable. //temp已聲明為一個(gè)常量,常量一旦聲明只可讀,不允許改變,去修改這個(gè)常量就會(huì)拋出錯(cuò)誤。
2、因const聲明的常量不可改變,所以在聲明時(shí)候就必須賦值,不能留到后面賦值
const foo;// SyntaxError: Missing initializer in const declaration //只聲明而不賦值就會(huì)報(bào)錯(cuò)
3、const的作用域:只在聲明所在的塊級(jí)作用域中生效
if(true){ const temp = 11;//const聲明了常量temp,temp的作用域就是在當(dāng)前if語(yǔ)句的塊作用域中 } console.log(temp);//報(bào)錯(cuò): temp is not defined //當(dāng)前作用域拿不到if語(yǔ)句中的temp,所以當(dāng)前作用域找不到temp而拋出錯(cuò)誤
4、const聲明的常量不能提升,所以形成“暫存死區(qū)”
console.log(num);//num is not defined const num = 10; //在當(dāng)前作用域中,聲明之前使用會(huì)報(bào)錯(cuò),只能在聲明的后面使用
5、const聲明的常量同樣不能聲明同名的
const num = 10; const num = 20;//報(bào)錯(cuò):Identifier "num" has already been declared //同一作用域下不能使用相同名字的常量,等同于let
6、const不同塊作用域下可以聲明同名的常量
if(true){ const temp = 44; } const temp = 55; //不同的作用域下可以使用同名的常量
7、const聲明的常量,實(shí)際是指指向內(nèi)存的址不變
const obj = {}; obj.name = 1;//可以操作復(fù)合型數(shù)據(jù)常量的結(jié)構(gòu) obj.age = 18;//對(duì)于對(duì)象類型的數(shù)據(jù),可以改變obj常量的結(jié)構(gòu) const obj1 = {}; obj1 = {};//報(bào)錯(cuò)哦!不能再賦值給這個(gè)常量 const arr = []; //可以操作arr的結(jié)構(gòu) arr[0] = 1; arr[1] = 2; //不能將arr指向新的數(shù)組或其他 arr = [1,2];//報(bào)錯(cuò)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/92030.html
摘要:最近在上看到一篇關(guān)于變量提升的文章,原文在此。對(duì)于剛?cè)腴T的開(kāi)發(fā)者時(shí)常難以理解變量方法提升的獨(dú)特行為。接下來(lái)我們要談?wù)摚?,聲明,那么先了解變量提升就顯得更為重要了。在進(jìn)入作用域和不能訪問(wèn)的這段時(shí)間,我們稱為暫時(shí)性死區(qū)。 showImg(https://segmentfault.com/img/bV0Nsd?w=800&h=450); 最近在Medium上看到一篇關(guān)于變量提升的文章,原文在...
摘要:在的閉包中,閉包函數(shù)能夠訪問(wèn)到包庇函數(shù)中的變量,這些閉包函數(shù)能夠訪問(wèn)到的變量也因此被稱為自由變量。在之前最常見(jiàn)的兩種作用域,全局作用局和函數(shù)作用域局部作用域。 關(guān)于文章討論請(qǐng)?jiān)L問(wèn):https://github.com/Jocs/jocs.... 當(dāng)Brendan Eich在1995年設(shè)計(jì)JavaScript第一個(gè)版本的時(shí)候,考慮的不是很周到,以至于最初版本的JavaScript有很多不...
摘要:首先說(shuō)一下關(guān)于的幾點(diǎn)語(yǔ)法要求不能以數(shù)字開(kāi)頭命名在中是不區(qū)分大小寫(xiě)的,但在這里需要區(qū)分大小寫(xiě),大寫(xiě)的名稱與小寫(xiě)的名稱分別是區(qū)分開(kāi)的不能用關(guān)鍵字進(jìn)行變量命名給變量定義變量名稱一般要具有語(yǔ)義化,見(jiàn)名知意一般采用駝峰或者下劃線命名。 首先說(shuō)一下關(guān)于JavaScript的幾點(diǎn)語(yǔ)法要求: 不能以數(shù)字開(kāi)頭命名; 在html中是不區(qū)分大小寫(xiě)的,但在這里需要區(qū)分大小寫(xiě),大寫(xiě)的名稱與小寫(xiě)的名稱分別是區(qū)分...
摘要:函數(shù)提升在里有兩種方式創(chuàng)建函數(shù),通過(guò)函數(shù)聲明和函數(shù)表達(dá)式。函數(shù)聲明用指定的參數(shù)來(lái)定義函數(shù)。提示不要在中進(jìn)行函數(shù)聲明。問(wèn)題輸出兩個(gè)都是用函數(shù)聲明的函數(shù),將被提升到的局部作用域頂端。函數(shù)本身將作為函數(shù)聲明在全局范圍內(nèi)提升。 作者關(guān)于提升的話題,總共有兩篇。(后來(lái)又有一個(gè)討論篇),再次搬過(guò)來(lái)。水平有限,如果翻譯的不準(zhǔn)確請(qǐng)包涵,并去看原文。下面開(kāi)始: 這是我之前的關(guān)于提升的文章,標(biāo)題為《用le...
閱讀 3117·2021-11-24 09:39
閱讀 979·2021-09-07 10:20
閱讀 2400·2021-08-23 09:45
閱讀 2273·2021-08-05 10:00
閱讀 575·2019-08-29 16:36
閱讀 840·2019-08-29 11:12
閱讀 2824·2019-08-26 11:34
閱讀 1845·2019-08-26 10:56