2021-02-21 分類: 網(wǎng)站建設(shè)
查看了數(shù)千個(gè)項(xiàng)目后,發(fā)現(xiàn)了 10 個(gè)最常見的 JavaScript 錯(cuò)誤。我們會(huì)告訴你什么原因?qū)е铝诉@些錯(cuò)誤,以及如何防止這些錯(cuò)誤發(fā)生。如果你能夠避免落入這些 “陷阱”,你將會(huì)成為一個(gè)更好的開發(fā)者。
在我們工作中,這種錯(cuò)誤可能發(fā)生的一種場(chǎng)景是:如果在加載元素之前嘗試在 JavaScript 中使用元素。 因?yàn)?DOM API 對(duì)于空白的對(duì)象引用返回值為 null。
任何執(zhí)行和處理 DOM 元素的 JS 代碼都應(yīng)該在創(chuàng)建 DOM 元素之后執(zhí)行。
JS 代碼按照 HTML 中的規(guī)定從上到下進(jìn)行解釋。 所以,如果 DOM 元素之前有一個(gè)標(biāo)簽,腳本標(biāo)簽內(nèi)的 JS 代碼將在瀏覽器解析 HTML 頁(yè)面時(shí)執(zhí)行。 如果在加載腳本之前尚未創(chuàng)建 DOM 元素,則會(huì)出現(xiàn)此錯(cuò)誤。
在這個(gè)例子中,我們可以通過(guò)添加一個(gè) Listener 來(lái)解決這個(gè)問題,這個(gè)事件偵查會(huì)在頁(yè)面準(zhǔn)備好的時(shí)候通知我們。 一旦 addEventListener 被觸發(fā), init() 方法就可以使用 DOM 元素。
2. 在
在您的 HTML 代碼中,對(duì)于您設(shè)置了 Access-Control-Allow-Origin 的每個(gè)腳本,在 script 標(biāo)簽上設(shè)置 crossorigin=“anonymous”。在腳本標(biāo)記中添加 crossorigin 屬性之前,請(qǐng)確保驗(yàn)證上述 header 正確發(fā)送。
在 Firefox 中,如果存在crossorigin屬性,但Access-Control-Allow-Origin頭不存在,則腳本將不會(huì)執(zhí)行。
5、 TypeError: Object doesn’t support property
這是您在調(diào)用未定義的方法時(shí)發(fā)生在 IE 中的錯(cuò)誤。 您可以在 IE 開發(fā)者控制臺(tái)中進(jìn)行測(cè)試。
您通常會(huì)在數(shù)組中找到定義的長(zhǎng)度,但是如果數(shù)組未初始化或者變量在另一個(gè)上下文中,則可能會(huì)遇到此錯(cuò)誤。讓我們用下面的例子來(lái)理解這個(gè)錯(cuò)誤。
或
如果在使用 event 時(shí)遇到此錯(cuò)誤,請(qǐng)確保使用傳入的事件對(duì)象作為參數(shù)。像 IE 這樣的舊瀏覽器提供了一個(gè)全局變量事件,但并不是所有瀏覽器都支持。
總結(jié)
我們看到上面的 10 個(gè)最常見的錯(cuò)誤,其實(shí)所涉及的知識(shí)點(diǎn)并不難。當(dāng)你認(rèn)真讀過(guò)《你不知道的 JavaScript》上卷后,這些錯(cuò)誤基本就不會(huì)再出現(xiàn)了。
歸根結(jié)底是對(duì) JavaScript 基礎(chǔ)知識(shí)掌握的不扎實(shí)。
名稱欄目:10 種 JavaScript 最常見的錯(cuò)誤
路徑分享:http://jinyejixie.com/news6/102106.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)站維護(hù)、定制網(wǎng)站、網(wǎng)站營(yíng)銷、Google、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容