18禁黄动漫网站禁片无遮挡观看|国产在线观看免费A∨|国产偷伦在线2020

  • 
    
    1. <table id="dwhxz"><cite id="dwhxz"></cite></table>
    2. 使用JavaScript關鍵字進行相關命名產生的bug問題

      2022-07-18 23:46 欄目:技術開發 查看(3624)

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

      微信截圖_20220718232409

      但處于謹慎,我還是回復了疑似關鍵字問題,要求提供代碼,結果發送過來的代碼也證實是這個問題。簡化后的代碼如下:

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

      類似的問題筆者在社區或群中已經給好幾個人解答過了,所以干脆記錄以下,以后有問到的直接甩這篇短文給他即可了。

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

      1、常見的JavaScript關鍵字

      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、常見的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等。

      關鍵字的內容并不是一成不變的,隨著JavaScript版本的提升,關鍵字也會隨之發生變化,比如let和const等為關鍵字是在ES2015新增的。

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

      微信截圖_20220718233904

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

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

       

      與我們的項目經理聯系
      掃二維碼與項目經理溝通

      我們在微信上24小時期待你的聲音

      解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯網交流

      轉載請注明出處:使用JavaScript關鍵字進行相關命名產生的bug問題 - 微構網絡
      分享:
    3. 
      
      1. <table id="dwhxz"><cite id="dwhxz"></cite></table>