久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

        手機(jī)站
        千鋒教育

        千鋒學(xué)習(xí)站 | 隨時隨地免費(fèi)學(xué)

        千鋒教育

        掃一掃進(jìn)入千鋒手機(jī)站

        領(lǐng)取全套視頻
        千鋒教育

        關(guān)注千鋒學(xué)習(xí)站小程序
        隨時隨地免費(fèi)學(xué)習(xí)課程

        當(dāng)前位置:首頁  >  技術(shù)干貨  > 這7種常見的JavaScript錯誤,你知道嗎?

        這7種常見的JavaScript錯誤,你知道嗎?

        來源:千鋒教育
        發(fā)布人:wjy
        時間: 2023-01-05 09:42:00 1672882920

          從瀏覽器的控制臺到運(yùn)行Node.js的計算機(jī)終端,我們到處都會看到各類錯誤。

          這篇文章的重點(diǎn)是概述我們在JS開發(fā)過程中可能遇到的錯誤類型。

          1. RangeError

          當(dāng)數(shù)字超出允許的值范圍時,將拋出此錯誤。例如:

        常見的JavaScript錯誤1

          我們有一個帶有兩個元素的arr。接下來,我們嘗試使數(shù)組包含90**99 == 2.9512665430652753e+193元素。

          這個數(shù)字超出了大小數(shù)組可以增長的范圍。所以運(yùn)行時它會拋出RangeError:

        常見的JavaScript錯誤2

          因?yàn)槲覀円黾觓rr數(shù)組的數(shù)量超出了JS指定的范圍。

          2. ReferenceError

          當(dāng)對變量/項(xiàng)的引用被破壞或不存在時,將引發(fā)此錯誤。也就是說,變量/項(xiàng)不存在。

          例如,

        常見的JavaScript錯誤3

          我們有一個變量cat初始化為“ cat”。接下來,我們引用cat變量和dog變量。cat變量存在,而dog變量不存在。

          cat將返回“ cat”,而dog會引發(fā)ReferenceError,因?yàn)樵诃h(huán)境記錄中找不到名為dog的變量。

        常見的JavaScript錯誤4

          每當(dāng)我們創(chuàng)建或定義變量時,變量名稱都會寫入環(huán)境記錄中。此環(huán)境記錄就像鍵值存儲表一樣,如下圖:

        常見的JavaScript錯誤5

          每當(dāng)我們引用變量時,它都會存儲程序中定義的變量。當(dāng)在記錄中找到環(huán)境值并提取并返回值時,將以該變量的名稱作為關(guān)鍵字搜索環(huán)境記錄。調(diào)用尚未定義的函數(shù)。

          現(xiàn)在,當(dāng)我們創(chuàng)建或定義一個沒有賦值的變量時。變量將鍵作為變量名寫入環(huán)境記錄,但該值將保持未定義狀態(tài)。

        常見的JavaScript錯誤6

          稍后為變量分配值時,將在env記錄中搜索該變量,當(dāng)發(fā)現(xiàn)該初始未定義值時,該賦值將被覆蓋。

        常見的JavaScript錯誤7

          因此,當(dāng)在env記錄中找不到變量名時,JS引擎會拋出RefernceError。

        常見的JavaScript錯誤8

          注意:未定義的變量不會拋出ReferenceError,因?yàn)樗嬖谟诃h(huán)境記錄中只是它的值尚未設(shè)置。

          3. SyntaxError

          這是我們遇到的最常見的錯誤。當(dāng)我們鍵入JS引擎難以理解的代碼時,會出現(xiàn)此錯誤。解析期間,JS引擎捕獲了此錯誤。

          在JS引擎中,我們的代碼經(jīng)歷了不同的階段,然后才能在終端上看到運(yùn)行結(jié)果。

          標(biāo)記化

          解析

          執(zhí)行

          標(biāo)記化將源代碼分解為各個單元。在這個階段,將對數(shù)字,關(guān)鍵字,文字,運(yùn)算符進(jìn)行分類并分別進(jìn)行標(biāo)記。接下來,生成的token流將傳遞到解析階段,由解析器處理。這是從token生成AST的地方。AST是我們代碼結(jié)構(gòu)的抽象數(shù)據(jù)結(jié)構(gòu)。

          在標(biāo)記化和解析這兩個階段,如果我們代碼的語法不符合JS的語法規(guī)則,則會使執(zhí)行階段失敗并引發(fā)SyntaxError。例如,

        常見的JavaScript錯誤9

          這里的“h”明顯是多余的,所以由于多了這個字符,會導(dǎo)致引擎拋出SyntaxError

        常見的JavaScript錯誤10

          很顯然,Node.js引擎發(fā)現(xiàn)了錯誤,由于這個不和諧字符的出現(xiàn),導(dǎo)致cat變量的聲明失敗了。

          4. TypeError

          TypeError 是指對象用來表示值的類型非預(yù)期類型時發(fā)生的錯誤。例如,我們期望它是布爾值,但結(jié)果發(fā)現(xiàn)它是string類型。

          再例如:

        常見的JavaScript錯誤11

          因?yàn)閠oUpperCase函數(shù)需要字符串?dāng)?shù)據(jù)類型。toUpperCase函數(shù)是有意通用的;它不需要其this值是String對象。因此,可以將其轉(zhuǎn)移到其他種類的對象中用作方法。

          如果我們在Objects,Boolean,Symbol,null,undefined數(shù)據(jù)類型上調(diào)用toUpperCase函數(shù),則只有字符串會轉(zhuǎn)換為大寫或小寫形式,我們將得到TypeError,因?yàn)樗僮鞯臄?shù)據(jù)類型錯誤。

          5. URIError

          這說明了使用一種全局URI處理功能與其定義不兼容。

          JS中的URI(統(tǒng)一資源指示符)具有以下功能:decodeURI,decodeURIComponent等。

          如果我們用錯誤的參數(shù)調(diào)用其中任何一個,我們將得到一個URIError。

        常見的JavaScript錯誤12

          encodeURI,獲取URI的未編碼版本。“%”不是正確的URI,因此引發(fā)了URIError。

          編碼或解碼URI時出現(xiàn)問題時,將引發(fā)URIError。

          6. EvalError

          如果非法調(diào)用 eval(),則拋出 EvalError 異常。

          根據(jù)EcmaSpec 2018版:

          此異常不再會被JavaScript拋出,但是EvalError對象仍然保持兼容性。

          7. InternalError

          該錯誤在JS引擎內(nèi)部發(fā)生,特別是當(dāng)它有太多數(shù)據(jù)要處理并且堆棧增長超過其關(guān)鍵限制時。

          當(dāng)JS引擎被太多的遞歸,太多的切換情況等淹沒時,就會發(fā)生這種情況。

        常見的JavaScript錯誤13

          太多的遞歸,一個簡單的例子是這樣的:

        常見的JavaScript錯誤14

          結(jié)論

          正如我們所說,沒有人能不犯錯誤。就我們輸入的代碼而言,發(fā)生錯誤是難以避免的。

          不過為了避免更多的錯誤出現(xiàn),我們需要知道拋出的錯誤的類型是什么,我們該如何解決。

          所以我們在這篇文章中列出了它們,并提供了一些示例來簡要的來介紹了它們是如何發(fā)生的。

        tags:
        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
        請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
        免費(fèi)領(lǐng)取
        今日已有369人領(lǐng)取成功
        劉同學(xué) 138****2860 剛剛成功領(lǐng)取
        王同學(xué) 131****2015 剛剛成功領(lǐng)取
        張同學(xué) 133****4652 剛剛成功領(lǐng)取
        李同學(xué) 135****8607 剛剛成功領(lǐng)取
        楊同學(xué) 132****5667 剛剛成功領(lǐng)取
        岳同學(xué) 134****6652 剛剛成功領(lǐng)取
        梁同學(xué) 157****2950 剛剛成功領(lǐng)取
        劉同學(xué) 189****1015 剛剛成功領(lǐng)取
        張同學(xué) 155****4678 剛剛成功領(lǐng)取
        鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
        董同學(xué) 138****2867 剛剛成功領(lǐng)取
        周同學(xué) 136****3602 剛剛成功領(lǐng)取
        相關(guān)推薦HOT
        適合三農(nóng)領(lǐng)域的名字?有何技巧?

        現(xiàn)在在抖音上很多博主會選擇直播來賺取更多的流量以及利潤,直播間的東西也有很多讓消費(fèi)者信任并且喜歡的,而且隨著越來越多人直播,很多農(nóng)產(chǎn)品...詳情>>

        2023-09-19 07:06:05
        抖店商品發(fā)布違規(guī)怎么申訴?有何規(guī)則?

        抖店服務(wù)市場服務(wù)商發(fā)布違禁信息如何處理?情節(jié)嚴(yán)重程度判定原則:違規(guī)嚴(yán)重等級主要通過服務(wù)商違規(guī)次數(shù)、造成后果的嚴(yán)重程度、獲利或?qū)е聯(lián)p失的...詳情>>

        2023-09-19 06:59:55
        “泛垂直起號”可能是2023年最高效的起號方式

        這可能是明年最好用的旗號方式了,今天教大家一個很野,但是可以讓你三天漲1000粉的偏方。去年前年啊,每個人都教你,誰知七號對著自己的產(chǎn)品拍...詳情>>

        2023-09-19 06:37:38
        做直播怎么賣自己的貨怎么上鏈接?能賺錢嗎?

        直播賣貨是時下非?;鸬囊粋€行業(yè),我們的產(chǎn)品可以放到網(wǎng)上賣,也可以在網(wǎng)上做直播?,F(xiàn)在的直播平臺也是很多的,基本不愁沒有銷路。如果想要賣自...詳情>>

        2023-09-19 06:28:26
        比較適合新手的3個不用出境的領(lǐng)域

        隨著短視頻行業(yè)盛勢發(fā)展,越來越多的年輕人也想要投入這行,但又苦于不想出鏡。抖音短視頻 for Android V24.8.0 安卓手機(jī)版類型:影音播放大小...詳情>>

        2023-09-19 06:06:39
        開班信息
        北京校區(qū)
        • 北京校區(qū)
        • 大連校區(qū)
        • 廣州校區(qū)
        • 成都校區(qū)
        • 杭州校區(qū)
        • 長沙校區(qū)
        • 合肥校區(qū)
        • 南京校區(qū)
        • 上海校區(qū)
        • 深圳校區(qū)
        • 武漢校區(qū)
        • 鄭州校區(qū)
        • 西安校區(qū)
        • 青島校區(qū)
        • 重慶校區(qū)
        • 太原校區(qū)
        • 沈陽校區(qū)
        • 南昌校區(qū)
        • 哈爾濱校區(qū)
        镇巴县| 图片| 松滋市| 海口市| 乃东县| 东乡族自治县| 和林格尔县| 沧源| 贵州省| 台北市| 辉南县| 贺兰县| 辉县市| 苗栗市| 固始县| 信阳市| 乐亭县| 方正县| 海晏县| 千阳县| 乡宁县| 固原市| 陇川县| 托克逊县| 横峰县| 宁南县| 泽库县| 扶绥县| 汾阳市| 康保县| 饶平县| 隆林| 九龙城区| 平果县| 台山市| 庆元县| 竹北市| 大名县| 商洛市| 平遥县| 本溪|