JavaScript 最容易犯的 10 個錯誤

2020-12-12 技術之芯

為了回饋社區,codeburst 從他們公司的上千個項目中,整理了 JavaScript 出現次數最多的 10 個錯誤。如果能避免這些錯誤的話,那麼你能成為一個更好的程式設計師。以下就是排名最高的 10 個 錯誤:

Uncaught TypeError: Cannot read property

這個錯誤大家應該經常碰到,當你在 Chrome 瀏覽器中,從一個 undefined 的對象上嘗試讀取一個屬性或者調用一個方法的時候,就會拋出這個錯誤:

TypeError: 『undefined』 is not an object (evaluating

上述相同的錯誤,在 Safari 瀏覽器中給出的是不同的錯誤信息,在 Safari 瀏覽器上實驗可以得到這個結果。

TypeError: null is not an object (evaluating

在 Safari 瀏覽器上,從一個 null 對象上讀取屬性或者調用方法的時候,就會拋出這個錯誤。在 JavaScript 的世界裡,null 和 undefined 是不同的,null 代表這個對象是一個空的值,而 undefined 代表這個對象的值沒有定義。

這種錯誤較為常見的出現方式是,在頁面尚未加載完畢的時候,就直接操作 DOM,而實際上這個 DOM 節點現在還是一個 null。所以一定要等頁面加載完畢後,再操作 DOM:

(unknown): Script error

如果你的 JavaScript 代碼放在 CDN 上,那麼這段代碼拋出的任何未捕獲的錯誤都會報腳本錯誤。這是瀏覽器的防止代碼跨源訪問的一種安全機制。

TypeError: Object doesn’t support property

在 IE 瀏覽器上,當你調用一個未定義的方法時,就會出現這個錯誤。這個和下面介紹的 Chrome 瀏覽器上拋出的 「TypeError: 『undefined』 is not a function」錯誤是一個類型。

TypeError: 『undefined』 is not a function

在 Chrome 瀏覽器上調用一個未定義的方法時,會拋出這個錯誤。

JavaScript 近些年的發展趨勢比較快,開發複雜度逐步增加,所以開發者可能會弄混當前的 this 究竟是指向哪個對象:

Uncaught RangeError: Maximum call stack

這種情況是因為函數遞歸,超出了棧的最大大小限制,這個時候應該仔細檢查參數的變化,它可能沒有按照你想像的那樣變化:

TypeError: Cannot read property 『length』

從一個未定義的變量上嘗試讀取它的長度屬性,會發生這樣的錯誤:

開發者錯誤的假定當前的數組一定是初始化後的,而實際上忘記傳遞參數是常有的事兒:

Uncaught TypeError: Cannot set property

我們不能在一個未定義的變量上,調用任何 set 或者 get 方法:

ReferenceError: event is not defined

在事件處理的時候,比較容易得到這樣的錯誤。舊版本的 IE 瀏覽器提供了一個全局可訪問的 event 變量,Chrome 自動將 event 對象綁定到回調函數上,Firefox 卻不會自動綁定。於是 jQuery 就為大家提供了一個統一的訪問事件對象的方式。

總結

大多數錯誤都是因為 null 或 undefined 引起的錯誤。使用靜態類型的 JavaScript 語言例如 TypeScript 可以有效幫你應對這些情況,它會給予你一些警告信息。希望大家在以後的編程中,儘量避開這些錯誤,它們看起來微不足道,卻又是大家最常犯的錯誤。

相關焦點

  • 如何避免 JavaScript 開發者常犯的 9 個錯誤?
    JavaScript 是一種給網頁添加功能和交互的腳本語言,對於使用不同程式語言的初學者來說很容易理解。有了一些教程,你就可以馬上開始使用它了。但很多初學者都會犯一些常見的錯誤。舉個例子:const name = "javascript";if ((name = "nodejs")) {    console.log(name);}// output - nodejs
  • MBA聯考中最容易犯的10個小錯誤
    MBA聯考中最容易犯的10個小錯誤 MBA聯考是一場沒有硝煙的戰爭,各位備考MBA的同學們要知道,每一個微小的失誤都有可能造成考生折戟沉沙,名落孫山的悲慘結局。為了不讓我們的努力白費,不讓長期的準備工作付諸流水,對於聯考再多的準備工作都不會顯得多餘。
  • 年輕父母教育孩子最容易犯的10個錯誤
    所有父母都會犯錯誤,新手爸媽在育兒方面尤其如此。美國「網絡醫學博士」網站最新載文,刊出由專家總結出的「新爸媽常犯的10個錯」,值得所有父母們重視。  1.遇到啥事都恐慌。當然,如果寶寶哭了1個小時也哄不好,且伴有發熱、皮疹和持續嘔吐,務必趕緊看醫生。  3.叫醒寶寶把奶喂。沃克博士表示,人們普遍錯誤地認為,母乳太稀,寶寶只喝母乳,夜裡一定會餓,得中途弄醒他們再餵次奶。但事實是,母乳絕對夠寶寶安心地睡一整晚,媽媽們大可放心。  4.溢奶嘔吐分不清。沃克博士表示,這兩者的區別主要在於頻率。
  • 最容易犯的10個語法錯誤,看看你踩過幾個坑?
    我們總結出了中國人最常犯的10個語法錯誤,請大家對號入座。其實,多看看常見的語法錯誤也是學習英語的好方法之一,看到了問題便會時刻鞭策自己不要犯同樣的錯誤。時態錯誤應該是同學們犯的最多的語法錯誤了。光是看見這麼多字恐怕同學們已經暈了吧,我們常犯的錯誤主要是代詞的各人稱之間和單複數之間的誤用。來看看幾個例子吧:1.錯誤:Anna and Pat are married; he has been together for 20 years.
  • 童年遭遇情感忽視的人,最容易犯3個錯誤
    童年遭遇情感忽視的人,最容易犯3個錯誤 2020-09-18 06:53 來源:澎湃新聞·澎湃號·湃客
  • 當你給貓餵食物時,你是否也犯了這些錯誤?4個容易犯的低級錯誤
    當我們自己在吃飯的時候,我們可能已經犯了很多錯誤。「我們到底犯了哪些錯誤?」貓無法告訴我們。它們不能用語言和我們溝通,直到它們生病時我們才後知後覺。關於這些錯誤,你不用擔心。我們會在這篇文章中告訴你一些最常見的餵食錯誤,以幫助你避開它們,並讓毛孩子們過上更健康的生活。
  • 10 種最常見的 Javascript 錯誤
    -javascript-errors/為了回饋我們的開發者社區,我們查看了數千個項目的資料庫,發現了 JavaScript 中頻度最高的 10 種錯誤。我們會告訴你什麼原因導致了這些錯誤,以及如何防止這些錯誤發生。如果你能夠避免落入這些 「陷阱」,你將會成為一個更好的開發者。數據才是王道,我們收集並分析了出現頻次排前 10 的 JavaScript 錯誤。 Rollbar 會收集每個項目的所有錯誤,並總結每個錯誤發生的次數。
  • 新手媽媽帶娃最容易犯的10個錯誤,快來對照看看
    新媽媽在照顧寶寶的時候,由於經驗不足通常容易犯些錯誤,以下就來看看有哪些是新手媽媽容易犯的錯誤,在照顧寶寶的過程中要積極的避開它們。再者,米粉不能吃太多,寶寶容易吃飽,久而久之就不願意喝配方奶了。餵食米粉應當在喝配方奶後半小時。
  • 孕媽容易犯的10個錯誤
    以下這些可能的錯誤習慣,孕媽咪要特別留意。不食品類的少量吃都沒問題,只要不要大量吃、天天吃即可,所以萬一不小心吃到了這些食物,也不用過於擔心!懷孕初期可能犯的禁忌錯誤1.大量吃珍珠米孕婦少量吃珍珠米通常不會對胎兒有太大的影響;但不適合大量吃珍珠米,以免可能有流產之虞。有些人會把珍珠米當飯吃,但不建議孕婦這樣做。
  • 孕媽容易犯的10個錯誤
    懷孕初期可能犯的禁忌懷孕中期可能犯的禁忌懷孕後期可能犯的禁忌>錯誤1.產前吃薑母鴨、麻油雞、羊肉爐補一補孕婦最好不要自行吃補,而且懷孕後期偏熱性體質,吃補如同火上加油,容易口乾舌燥、便秘、錯誤2.要吃人參補氣,替生產儲備體力孕婦不宜大量吃人參,補太多一樣會使火上加火、補過頭,容易口乾舌燥、便秘、皮膚癢。如有需要應先諮詢醫師。錯誤3.燒酒雞煮滾久一點,酒精揮發就可以吃了酒精不可能完全揮發,即使煮滾4小時仍有酒精殘留,孕婦不宜吃含有酒精的食物。
  • 新手做伏地挺身,最容易犯的一個錯誤!
    最近又將訓練回歸到一些基礎當中了,伏地挺身作為最基本的上肢推力練習,很有必要時不時拿出來講一下。今天這期,就講到初學者非常容易犯的一個錯誤。
  • 【第1199期】10 種最常見的 Javascript 錯誤
    今日早讀文章由@elevenbeans 翻譯授權分享正文從這開始~總結於 1000+ 個項目,並闡述如何避免為了回饋我們的開發者社區,我們查看了數千個項目的資料庫,發現了 JavaScript 中頻度最高的 10 種錯誤。我們會告訴你什麼原因導致了這些錯誤,以及如何防止這些錯誤發生。如果你能夠避免落入這些 「陷阱」,你將會成為一個更好的開發者。
  • Python程式設計師最常犯的10個錯誤
    說到這點,我們就不得不提下面這個常見的Python編程錯誤。請看下面的代碼:>>> x = 10>>> def foo():...     x += 1...     print x...
  • 鸚鵡飼養過程中,初學者最容易犯的30個錯誤,看看你有沒有犯過
    在飼養過程中會遇到各種各樣的問題,尤其飼養第一隻鸚鵡時,需要學習更多關於鸚鵡的知識,新手最容易犯的30個錯誤,家裡飼養了鸚鵡,看看自己有沒有犯過,打算養鸚鵡的看完可以避免,為以後飼養鸚鵡打下基礎。.~10、飲食錯誤1.只餵黃穀子、2.穀子花生長黴、3.食盒只剩殼,不加穀子鸚鵡餓死、4.餵自來水、5.不換水不洗飲水器、6.不檢查滾珠飲水器,不下水鸚鵡渴死、7.水果蔬菜洗了直接丟籠子裡、8.水果蔬菜從不清理、9.雞蛋殼不煮、10.餵太多高油脂穀物,脂肪瘤。
  • 日語學習中最容易犯的7個錯誤,你可能都躺槍了!
    學好一門外語並不是一件容易的事情,今天,大家一起來了解一下日語學習過程中最容易犯的那些錯誤吧!1.『爆笑』は「大笑い」することではない。『爆笑』並不是「大笑」!『爆笑』指的是「許多人同時發笑」,並不是「一個人大笑」的意思。
  • 高考填塗答題卡,最容易犯四個錯誤,直接影響考試結果,考生注意
    高考填塗答題卡,最容易犯四個錯誤,直接影響考試結果,考生注意高考,對於我們普通同學來說,就是一次改變命運的機會。所以我們為了這次考試起早貪黑的學習,拼命的努力,在數十年的時間裡不敢有一絲一毫的鬆懈。然而,在每年的高考中,總會出現不少考生因為堵車,過度緊張,答題卡填寫錯誤等意外因素導致自己高考發揮失常。不管這些意外降臨在哪個學生身上,都是我們最不願意看到的事情,所以我們要提前做好一切準備,防止意外的發生。如果學生們在高考答題卡填塗上出了問題,那麼就算再優秀的學生也很難在高考中拿高分。所以在高考前,大多數高三班主任都會和學生們反覆強調答題卡填塗的注意事項。
  • 盤點人們最常犯的10個英語語法錯誤
    Using data from millions of its subscribers, Microsoft recently rounded up a list of the top 10 grammar mistakes in the English language.
  • 畫老人最常見的三種錯誤,第三個是最容易犯的
    簡單是因為老人骨骼明顯,五官也容易分塊面。結構,是很多同學容易忽略又容易較真的部分,結果就是要麼整體畫面不舒服,要麼太死板。如果你前兩種都完美處理,在塑造的時候,很多同學又會犯一個錯誤:皺紋太碎。有同學說:「老師,素描要寫實呀,他本來就那個樣子呀。」素描寫實沒錯,但是我們的畫面是經過藝術處理的,否則與照相機有什麼區別呢?
  • 新手開車最容易犯這7個錯誤!你中了幾個?
    但真到坐進駕駛室,要「獨立行走」時,又容易因為緊張或疏忽而出現一系列的失誤,輕則影響駕乘體驗,重則傷車引事故。今天,我們就來盤點一下新手司機最容易犯的錯誤有哪些,又該如何避免。如果你一條都沒有,那恭喜你,離「老司機」已經不遠啦!
  • 給寶寶清理鼻腔 最容易犯4錯誤
    給寶寶清理鼻腔 最容易犯4錯誤2014-01-26 09:54:53出處:PCbaby作者:小潔      寶寶的小鼻隱藏著無數的毛細血管,再加上小寶寶皮膚脆弱,稍有不慎,就會弄傷流血。所以,給寶寶清理鼻孔就成為了爸爸媽媽們的一個難題了。怎樣科學給寶寶清理鼻孔?