国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

JavaScript 開發中常見錯誤解決小總結

開發 前端
本文就來介紹在 Chrome 開發者工具中常見的錯誤反饋及排除技巧,讓你不再為了滿屏幕的紅字感到挫折,更能從中學習如何快速搜尋錯誤代碼。

身為一名前端打工人,當然是經驗越多,在排查錯誤時會更容易。道理都懂,但仍然會在遇到問題時會不知道怎樣著手。

Chrome DevTools 中的常見錯誤排查

Chrome 開發者工具的 Console 相當好用,最常使用的不外乎是通過 console.log展示出變量或運算的結果,如果符合預期則皆大歡喜。

但是一旦出現紅字幸災樂禍的告訴我們“你出錯了!”,這對我們來說無疑是一種挫折,在不知如何著手解決錯誤的時,只能反覆地檢查自己的代碼,看看是不是有什么奇怪的地方,有時就算停在了錯誤地方也往往不知是什么意思,會因此花費大量的時間。

本文就來介紹在 Chrome 開發者工具中常見的錯誤反饋及排除技巧,讓你不再為了滿屏幕的紅字感到挫折,更能從中學習如何快速搜尋錯誤代碼。

注意:JavaScript 是屬于同步的編程語言,如果出現錯誤就會造成后面的代碼無法運行,當紅字沒有解決時,都有可能造成接下來的代碼行錯誤或是無法繼續運行。

錯誤類型:SyntaxError

SyntaxError 類型的錯誤通常是語法錯誤,遇到這中錯誤時建議通過你所用的 IDE 排查,比如 VSCode 能夠直接跳出這類型的錯誤提示。

如下圖,VSCode 用紅色波浪線提示 family 對象有錯誤,當出現錯誤時會建議不要只檢查當前行,錯誤可能會存在于上下文中(有可能跨多行的錯誤),這個例子中仔細檢查可以發現在'小明'后面少了一個逗號。

排查重點:使用主流的 IDE 例如 "VSCode" 進行排查

Uncaught SyntaxError: Unexpected identifier

  1. var person = { 
  2.   name: '小明' 
  3.   family: { 
  4.     name: '小明家' 
  5.   } 

語法解析錯誤,因為在對象結構中缺少一個逗號,除了通過在 VSCode 中查看外,也可以直接通過 Chrome Console 切換到 Source 頁面查看錯誤行,并檢查此行的上下文中是否存在語法錯誤。

Uncaught SyntaxError: Unexpected end of input

  1. function fn() { 
  2.   console.log('這是一個函數'); 
  3. console.log(fn); 

語法解析錯誤:未預期的結束,這個例子中缺少結尾的大括號 },在編寫代碼時盡可能的維持正確的鎖緊,將代碼排列整齊之后更容易找到錯誤。

Uncaught SyntaxError: Unexpected token '}'

  1. if (name) 
  2.   console.log('立即執行函數') 
  3. }; 

語法解析錯誤:未預期的符號 },代碼結尾多了一個 } 符號導致環境運行錯誤,這個錯誤的排查方法與上面相同,盡可能將代碼排整齊并維持首尾符號的一致。

除此之外再推薦一個 VSCode 工具,可以為你的首尾標簽加上對應的色彩:

https://marketplace.visualstudio.com/items?itemName=CoenraadS.bracket-pair-colorizer

例子:代碼中成對的 {} 都會以相同的顏色展示。

Uncaught SyntaxError: Identifier 'a' has already been declared

  1. let a; 
  2. let a; 

語法解析錯誤:識別符號(在這里指的是變量)已經被聲明,應該避免重復生命同一個變量,在 ES6 都禁止用 let、const 對變量進行重復聲明,直接排除即可。

錯誤類型:ReferenceError

ReferenceError 這類錯誤通常是指找不到引用,當出現這類錯誤時在 IDE 中不一定會提示現錯誤(除非安裝了 Linter),所以在代碼的運行階段才會看到這類錯誤。

排查重點:

  • 通過 Chrome 的提示改正
  • 在 JavaScript 開發環境中安裝 ESLint

ReferenceError: a is not defined

  1. ReferenceError: a is not defined 

引用錯誤:由于變量 a 未定義,所以在使用這個變量時會出現未定義的提示,只要先定義好這個變量即可。

還有另一種很常見的情況,當引用外部包時出現 “包名 + is not defined”,這種情況通常是外部資源沒有被正確載入,應該確保該資源被正確的引入。

下面的例子就是因為 jQuery 沒有正確導入而導致的。

  1. Uncaught ReferenceError: $ is not defined 

錯誤類型:TypeError

TypeError 是類型上的錯誤,同樣 IDE 也不會預先提示有錯誤,必須在執行時才會看到,這類型的錯誤通常是以下幾種:

  • 試圖獲取 undefined、null 的屬性
  • 嘗試調用非函式變量或表達式(例如: 'text'())

排查重點:在獲取變量前先確認其當前的數據類型及結構

Uncaught TypeError: Cannot read property 'a' of undefined

  1. var a; 
  2. console.log(a.a); 

說明:在這個變量的值中無法找到其特定的屬性,例如在 undefined、null 的值上是找不到其它屬性的,如果無法確認該變量是否為 undefined,可以把代碼改成這樣:

  1. if (typeof a !== 'undefined') { 
  2.   console.log(a.a); 

Uncaught TypeError: console.log(...) is not a function

  1. console.log('a') 
  2. (function() { 
  3.   console.log('立即執行函數') 
  4. })() 

說明:這代碼看起來是立即執行函數的錯誤,但是卻出現了 console.log(...) is not a function。這個錯誤主要是因為缺少了分號。

當遇到這類錯誤時只要在兩者之間補上分號即可。

  1. console.log('a'); 
  2. (function() { 
  3.   console.log('立即執行函數') 
  4. })() 

錯誤類型:RangeError

這是創建了超過長度上限的數組或執行了無法退出的遞歸函數所造成的錯誤,遇到這類問題需要重新檢查代碼的邏輯,是否消耗了過多的資源(內存或CPU資源)。

排查重點:需要重新檢查邏輯,如果有必要可先刪除部分代碼,先找出錯誤的片段后再進行除錯。

Uncaught RangeError: Maximum call stack size exceeded

  1. (function a() { 
  2.   a(); 
  3. })(); 

說明:在函數調用時會產生一個函數調用棧,如果在遞歸的過程中超過上限則會產生錯誤。

這類錯誤也很常見,卻不容易找到出錯的原因,其主要原因是在遞歸時超過了環境的限制(使用框架時也很常見),如果遇到這錯誤建議改寫當前調用函數的方式。

總結

當 Chrome Console 報錯時要保持淡定,在編碼的過程中出現錯誤是很常見的,所謂的大佬與新手之間的區別之一就是遇到錯誤時的經驗,遇到錯誤時搞不清楚沒關系,這都是經驗的累積。只要積累足夠了,再遇到相同的問題時就能自然而然的輕松面對了。

 

責任編輯:趙寧寧 來源: 前端先鋒
相關推薦

2019-06-21 10:13:26

JavaScript錯誤開發

2016-10-09 10:29:02

migratelaravelphp

2024-07-04 09:05:30

2010-01-22 15:42:01

VB.NET錯誤

2010-08-16 13:51:22

DIV+CSS

2017-04-07 09:02:06

Spark方法優化

2021-12-27 08:58:28

低代碼開發數據安全

2021-03-10 09:44:20

微信小程序APP

2017-11-22 14:20:07

前端JavaScript排序算法

2010-04-19 14:33:06

Oracle tns配

2011-05-18 14:44:13

mysql1046錯誤

2022-03-11 10:01:47

開發跨域技術

2017-03-17 14:18:34

JavaScript算法問題詳解

2009-08-27 11:12:04

C# foreach

2022-03-17 08:34:47

TypeScript項目類型

2019-04-09 21:10:23

iOS加密框架

2013-05-30 14:21:38

2009-12-30 15:29:14

2019-05-20 09:30:20

MySQL常見錯誤數據庫

2010-07-27 13:13:33

Flex數據綁定
點贊
收藏

51CTO技術棧公眾號

国产欧美日本| 一本久道综合久久精品| 久久久久久尹人网香蕉| av男人一区| y97精品国产97久久久久久| 蜜桃国内精品久久久久软件9| 亚洲在线免费观看| 激情综合色丁香一区二区| 久久久久久久免费视频| 99re视频精品| 黄页网址大全在线播放| 91三级在线| 欧美1—12sexvideos| 国产在线精品一区在线观看麻豆| 日韩精品中文字| 欧美一进一出视频| 欧美三级电影网址| 色婷婷综合久久久久中文字幕1| 国产福利91精品| 亚洲国产精品福利| 青草青青在线视频| 国产精品调教视频| 色哟哟一区二区在线观看| www日韩av| 成人性做爰片免费视频| 美女视频一区| 尤物视频一区二区| 欧洲精品亚洲精品| 久久福利在线| 亚洲国产裸拍裸体视频在线观看乱了| 在线精品视频一区二区| 久久日韩精品| 激情久久一区二区| 一区二区三区欧美久久| 免费一区二区三区在在线视频| 成人做爰视频www网站小优视频| 亚洲欧美精品一区| 91免费精品国偷自产在线| www.日日操| 五月精品视频| 久久九九全国免费精品观看| 日本aaa在线观看| 狠狠狠色丁香婷婷综合激情| 欧美尤物巨大精品爽| 日本一区二区在线| 久久久久久久久网站| 天天爱天天操天天干| 亚洲国产小视频在线观看| 日本一二三不卡| 亚洲精品www久久久| 欧美国产日韩精品| av在线三区| 91在线云播放| 国产精品日韩一区二区| 亚洲日本va中文字幕| 岛国一区二区三区| 91久久人澡人人添人人爽欧美| 91国在线高清视频| 99久久精品网| 欧美国产亚洲视频| 最近高清中文在线字幕在线观看1| 欧美日韩精品在线观看| 黄页网站在线观看视频| 欧美影视一区二区三区| 欧美综合一区| heyzo在线观看| 狠狠躁天天躁日日躁欧美| 激情五月***国产精品| 毛片网站在线看| 亚洲成人黄色网| 丝袜美腿美女被狂躁在线观看| 人人九九精品| 97国产在线视频| 青青青爽久久午夜综合久久午夜| 亚洲精品9999| 久久综合五月婷婷| 欧美日韩精品久久| 天天做夜夜做人人爱精品| 99久久.com| 91成人免费观看网站| www.在线视频.com| 久久久久久97三级| 免费观看国产精品视频| 神马影视一区二区| 欧美大胆人体bbbb| 在线视频中文亚洲| 制服丝袜在线91| 亚洲男人都懂的| 日韩高清有码在线| 国产精品久久占久久| 亚洲精品成人网| 东凛在线观看| 亚洲已满18点击进入在线看片| 欧美挤奶吃奶水xxxxx| 国产夫妻自拍一区| 一级黄色免费在线观看| 午夜伦理在线| 欧美日韩精品福利| 国产精品v一区二区三区| 97精品久久久| 精品一区二区免费在线观看| 亚洲国产小视频在线观看| 日韩高清中文字幕一区| 岛国毛片av在线| 亚洲精品一区二区三区樱花 | 欧美在线激情| 欧美一区二区久久久| 99精品免费视频| 视频精品国内| 三级小说欧洲区亚洲区| 成人av集中营| 国产剧情日韩欧美| 色婷婷精品久久二区二区蜜臀av| 欧美日韩视频免费播放| 成人a在线观看高清电影| 亚洲人成影院在线观看| 草草影院在线| 韩国三级在线观看久| 亚洲成人免费视频| 日本在线аv| 男人天堂a在线| 久久久欧美精品sm网站| 群体交乱之放荡娇妻一区二区| 一二三区精品视频| 国产一区二区亚洲| 欧美日韩中文字幕| 亚洲男女自偷自拍| 美女色狠狠久久| 97成人在线视频| 国产亚洲福利一区| 在线激情免费视频| 在线观看免费视频你懂的| 一区二区不卡在线播放 | 国产在线播放一区二区| 亚洲一区av| 91精品啪在线观看国产手机| av男人的天堂网| 免费成年网站| 免费h视频在线观看| 国产成人tv| 99re热视频这里只精品| 亚洲精品电影网在线观看| 成人激情视频小说免费下载| 欧美综合一区| 不卡电影免费在线播放一区| 日韩一区二区在线看| 1区2区3区欧美| 亚洲日本一区二区| 国产一二三区av| 国产伦一区二区三区色一情| 日韩欧美视频免费在线观看| 亚洲这里只有精品| 九色视频在线观看免费播放| 久久久久成人精品| 亚洲毛片在线免费观看| 午夜精品一区二区三区四区| 天堂日韩电影| 中文字幕在线国产精品| 91精品久久久久久久久99蜜臂| 国产精品色婷婷在线观看| 日本欧洲一区| 国产一级片黄色| 久久精品小视频| 亚洲天堂一区二区| 欧美一区二区视频| 啊啊啊啊啊啊啊视频在线播放| 国产传媒久久久| 国产精品日韩在线| 一区二区三区在线视频免费 | 国产精品久久久久久久久借妻 | 亚洲综合日韩在线| 91精品综合视频| 国产精品成av人在线视午夜片| 99久久伊人精品| 成人欧美一区二区三区在线 | 久久久国产综合精品女国产盗摄| 日韩在线观看你懂的| 鲁一鲁一鲁一鲁一色| 国产不卡一区二区在线播放| 精品国产乱码久久久久久88av| sese一区| 欧美xxxx少妇| 综合中文字幕| 色综合天天性综合| 91免费看网站| 日韩综合av| 欧美大黄免费观看| 日本黄色三级大片| 竹菊久久久久久久| 欧美日韩高清一区二区| 成年人羞羞的网站| 日韩一区精品字幕| 久久精品999| 九九综合九九综合| 夜色资源站国产www在线视频| 亚洲人成电影网| 欧美成人精品3d动漫h| 色欧美片视频在线观看| 亚洲女人****多毛耸耸8| 国产亚洲福利社区一区|