第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

沒有通知的 JavaScript 語法錯誤

沒有通知的 JavaScript 語法錯誤

慕姐8265434 2023-03-03 15:07:06
我是 JavaScript 的新手,當(dāng)我length鍵入lenght. 但是,沒有針對此錯誤或語法錯誤的通知。我花了很長時間調(diào)試。我想知道這怎么會發(fā)生?如果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貢獻(xiàn)1804條經(jīng)驗 獲得超7個贊

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


const obj = {

  prop1: 'val1'

};


console.log(obj.prop2);

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

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

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


查看完整回答
反對 回復(fù) 2023-03-03
?
呼喚遠(yuǎn)方

TA貢獻(xiàn)1856條經(jīng)驗 獲得超11個贊

JavaScript 是否可以接受長度?


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


var obj = {length: 1};

console.log(obj.lenght)

console.log(obj.lenght > 2)


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


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


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


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


var obj = {};

console.log(obj.foo.bar);


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


查看完整回答
反對 回復(fù) 2023-03-03
  • 2 回答
  • 0 關(guān)注
  • 160 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號