国产又猛又爽又黄视频|在线观看人成视频免费|少妇高潮太爽了在线视频|911国产免费无码专区|特黄做受又大又粗又长大片|欧美一级二级免费在线观看|日日夜人人澡人人澡人人看免|欧洲午夜精品一级毛片在线播放

使用JavaScript關(guān)鍵字進(jìn)行相關(guān)命名產(chǎn)生的bug問(wèn)題

2022-07-18 23:46 欄目:技術(shù)開(kāi)發(fā) 查看(6145)

剛剛在群里看到一個(gè)提問(wèn),大概問(wèn)題就是:我寫(xiě)的一個(gè)方法,在某個(gè)元素上使用onclick事件調用,結果無(wú)效,打開(kāi)控制臺發(fā)現報錯”Uncaught SyntaxError: Unexpected token ‘switch’ (at”。根據筆者經(jīng)驗,這一般是使用了switch這個(gè)JavaScript關(guān)鍵字導致的。

微信截圖_20220718232409

但處于謹慎,我還是回復了疑似關(guān)鍵字問(wèn)題,要求提供代碼,結果發(fā)送過(guò)來(lái)的代碼也證實(shí)是這個(gè)問(wèn)題。簡(jiǎn)化后的代碼如下:

<script>
 let switch=function(){ 
    console.log('ok');
 } 
 </script>
<a href="JavaScript:" onclick="switch();">TEST</a>

類(lèi)似的問(wèn)題筆者在社區或群中已經(jīng)給好幾個(gè)人解答過(guò)了,所以干脆記錄以下,以后有問(wèn)到的直接甩這篇短文給他即可了。

這就是一個(gè)非常典型的誤使用JavaScript的關(guān)鍵字作為方法名導致的錯誤,這種問(wèn)題一般出現在基本功不夠扎實(shí)的新人身上。跟其他開(kāi)發(fā)語(yǔ)言一樣,JavaScript有不少內置的關(guān)鍵字,在語(yǔ)法上每個(gè)關(guān)鍵字都會(huì )有其獨特的含義。因此,Javascript關(guān)鍵字是不能作為變量名和函數名使用的;使用Javascript關(guān)鍵字作為變量名或函數名,會(huì )使Javascript在載入過(guò)程中出現編譯錯誤。所以,不能把關(guān)鍵字、保留字、true、false和null用作標識符。

1、常見(jiàn)的JavaScript關(guān)鍵字

break、else、new、var、case、finally、return、void、catch、for、switch、while、continue、function、this、with、default、if、throw、delete、in、try、do、instranceof、typeof、let、const等。

2、常見(jiàn)的JavaScript保留字

abstract、enum、int、short、boolean、export、interface、static、byte、extends、long、super、char、final、native、synchronized、class、float、package、throws、const、goto、private 、transient、debugger、implements、protected 、volatile、double、import、public等。

關(guān)鍵字的內容并不是一成不變的,隨著(zhù)JavaScript版本的提升,關(guān)鍵字也會(huì )隨之發(fā)生變化,比如let和const等為關(guān)鍵字是在ES2015新增的。

這個(gè)也讓我想起曾經(jīng)有一個(gè)新人提問(wèn)為何他明明定義了一個(gè)方法,卻JavaScript控制臺報錯方法不存在,如下圖報錯:

微信截圖_20220718233904

這個(gè)報錯很顯然是由于不當使用了JavaScript自帶的方法search()而造成的,search() 方法用于檢索字符串中指定的子字符串,或檢索與正則表達式相匹配的子字符串。這個(gè)類(lèi)似php的list等方法,如果在代碼中使用list命名方法編輯器會(huì )立馬提示錯誤也運行不了。

其實(shí)所有編程語(yǔ)言都包含其獨特的關(guān)鍵字或保留字,很多語(yǔ)言都包含一些共同的關(guān)鍵字,比如try、if、else、caet、return、switch等,論是從編碼規范還是從軟件的兼容性考慮,都非常不建議使用關(guān)鍵字和保留字作為變量名和函數名使用。所以,我們在使用某種語(yǔ)言的時(shí)候,需要務(wù)必了解清楚其常見(jiàn)的關(guān)鍵詞和保留字,很多關(guān)鍵字或保留字在不同語(yǔ)言中會(huì )重復出現,只有一部分差異。

 

與我們的項目經(jīng)理聯(lián)系
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢(xún)/運營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流

轉載請注明出處:使用JavaScript關(guān)鍵字進(jìn)行相關(guān)命名產(chǎn)生的bug問(wèn)題 - 微構網(wǎng)絡(luò )
分享:
沛县| 沂南县| 潮安县| 福州市| 定日县| 土默特右旗| 北流市| 盐津县| 青岛市| 临汾市| 灵台县| 肥乡县| 华坪县| 彰化县| 宁乡县| 孟村| 宁蒗| 罗城| 温泉县| 青阳县| 南部县| 闻喜县| 崇义县| 栖霞市| 虞城县| 宣恩县| 蒙阴县| 崇明县| 五寨县| 景泰县| 舒兰市| 休宁县| 扶沟县| 体育| 安西县| 清丰县| 潞西市| 买车| 集安市| 内黄县| 广安市|