首頁 > web前端 > js教程 > 主體

JavaScript 快速入門:糟糕的比較

Patricia Arquette
發布: 2024-10-17 06:18:29
原創
723 人瀏覽過

JavaScript Quick Bits: Bad Comparisons

小蟲子可能會從意想不到的地方爬進來。錯誤的值可能會使您的條件邏輯以意想不到的方式失敗。讓我們快速看一下嚴重不平等帶來的令人頭痛的問題。

基礎知識

這些功能並不相同。它們大部分相同,但有一個非常具體的區別。你看到了嗎?

const one = (a) => a > 10;
const two = (a) => !(a <= 10);
登入後複製

每當我們使用 undefined 或 NaN 執行不等式檢查時,結果都是 false。如果我們不明確檢查邊緣情況,兩次「等效」檢查可能會返回不同的答案。

它是如何發生的

if (!(value <= 10)) {
  // ...
登入後複製

如果您遇到該程式碼,您可能會毫不猶豫地將其變更為 if (a > 10) { 。

  • 更短了。
  • 更容易閱讀。
  • 對於所有正常值它們是相同的。

為什麼這很重要

但是我們並不總是能得到正常值。這可能是對您的程式碼的重大更改。這可能會導致非常難以排除缺陷。這個簡單的程式碼中沒有任何內容表明我們可能會遇到“壞”值,因此您可能會完全錯過它。

類型安全也無法解決這個問題,因為 NaN 是一個數字......它只是一個

結論

如果您在程式碼中遇到這樣的奇怪情況,請問問自己,如果您更改錯誤值,會發生什麼情況。希望您的程式碼可以防止您獲得錯誤的值並執行錯誤的數學運算,但對這些更改採取一點防禦措施可以為您未來的自己省去很多麻煩。

在這種情況下,通常最好對錯誤值進行明確檢查。這些可以向其他開發人員清楚地傳達可能的輸入和預期結果。

if (Number.isNaN(value) || value > 10) {
  // ...
登入後複製

以上是JavaScript 快速入門:糟糕的比較的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板