JavaScript 神秘的回傳語句難題
考慮以下JavaScript 程式碼片段:
function correct() { return 15; } function wrong() { return 15; } console.log("correct() called : " + correct()); console.log("wrong() called : " + wrong());
考慮以下JavaScript 程式碼片段:
考慮以下Java ,正確()傳回預期值15,而false() 傳回未定義。這種行為與大多數其他程式語言不同,讓我們想知道為什麼會發生這種情況。
技術解釋:不可見的分號
JavaScript 的分號是可選的,解釋器自動將它們插入到某些換行符處。然而,解釋者的假設可能並不總是與我們的意圖一致。function wrong() { return; 15; }
在錯誤()的情況下,返回語句後面跟著一個換行符。這會觸發分號的插入,從而產生以下程式碼:
分解問題:返回語法
return 語句後面必須緊跟著回傳值。在錯誤()中,return後面的分號終止語句,使下一行斷開連線。
解決方案:將表達式括在括號中
function wrong() { return ( 15 ); }
為了避免這種混亂,我們可以將返回表達式括在括號中:
括號阻止解釋器插入分號並確保表達式計算正確。
理解 TypeScript 的推理
TypeScript,JavaScript 的類型化超集,在上面的程式碼中發出編譯器錯誤,強調了正確的回傳語句語法。這強調了在 JavaScript 中定義函數時此類考慮的重要性。以上是為什麼 JavaScript 的 `return` 語句有時會回傳 `undefined`?的詳細內容。更多資訊請關注PHP中文網其他相關文章!