亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

沒有通知的 JavaScript 語法錯誤

沒有通知的 JavaScript 語法錯誤

慕姐8265434 2023-03-03 15:07:06
我是 JavaScript 的新手,當我length鍵入lenght. 但是,沒有針對此錯誤或語法錯誤的通知。我花了很長時間調試。我想知道這怎么會發生?如果lenghtJavaScript 可以接受?var totalFruit = function(tree) {        let windowStart = 0;    let dict = {};    maxLength = 0;    for (let windowEnd = 0; windowEnd < tree.length; windowEnd++) {         currentFruit = tree[windowEnd];        if (!(currentFruit in dict)) {            dict[currentFruit] = 0;        }        dict[currentFruit] += 1;         while (Object.keys(dict).lenght > 2) {            leftFruit = tree[windowStart];            dict[leftFruit] -= 1;            if (dict[leftFruit] == 0) {                delete dict[leftFruit]            windowStart += 1;            }        }        maxLength = Math.max(maxLength, windowEnd - windowStart + 1);         }    return maxLength;};
查看完整描述

2 回答

?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

訪問對象上不存在的屬性是完全合法的。出于類似的原因,以下不會引發錯誤:


const obj = {

  prop1: 'val1'

};


console.log(obj.prop2);

如果對象上不存在某個屬性,但訪問了該屬性,則會導致undefined返回,但不會出現運行時錯誤。

JavaScript 無法區分您是在嘗試訪問可能存在的屬性,還是在輸入錯誤。

如果你想避免這些類型的錯誤(畢竟它們并不少見),請考慮使用像Typescript這樣的強類型的東西,它可以將這些煩人的調試運行時錯誤變成易于修復的編譯時錯誤. (我發現 TS 對于重要的項目來說是必不可少的,它可以節省很多調試時間。)另一種選擇是使用具有智能感知自動完成功能的 IDE(如 VSCode),這使得這類錯誤變得更加困難。


查看完整回答
反對 回復 2023-03-03
?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

JavaScript 是否可以接受長度?


是的。如果你試圖訪問一個不存在的屬性,JavaScript 將返回值undefined:


var obj = {length: 1};

console.log(obj.lenght)

console.log(obj.lenght > 2)


但是,沒有針對此錯誤或語法錯誤的通知。我花了很長時間調試。我想知道這怎么會發生?


這不是語法錯誤。語法錯誤是指您的代碼如此“損壞”以至于解析器無法將其作為有效的 JavaScript 程序處理。屬性名稱中的拼寫錯誤不是語法錯誤(解析器應該如何知道一個詞是否正確?對它來說,它只是一個字母序列。)


拼寫錯誤是否會導致運行時錯誤取決于上下文。訪問不存在的屬性會返回,undefined但在您的情況下這不是問題,因為undefined與數字進行比較是有效的操作。


另一方面,如果您嘗試訪問該undefined值的另一個屬性,您會得到一個錯誤:


var obj = {};

console.log(obj.foo.bar);


由于這些容易遺漏的錯誤,因此出現了 Typescript 甚至 eslint 之類的工具。他們試圖在開發時發現問題。


查看完整回答
反對 回復 2023-03-03
  • 2 回答
  • 0 關注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號