簡體   English   中英

檢查變量是否未定義且不為空的函數

[英]Function to check if variable is not undefined and not null

我正在尋找一種方法來執行以下操作:

 var test = 'I exist!'; var testNull = null; var testUndefined; function checkVar(varToCheck) { return typeof varToCheck != 'undefined' && varToCheck != null; } console.log(checkVar(test)); // Logs true console.log(checkVar(testNull)) // Logs false console.log(checkVar(testUndefined)) // Logs false console.log(checkVar(undefinedVar)) // Logs false

當它嘗試執行最后一行而不是false ,會拋出一個錯誤: Uncaught ReferenceError: undefinedVar is not defined

我知道可以通過以下方式完成:

if (typeof varToCheck != 'undefined' && varToCheck != null) {
    alert('something happens!')
}

但是一旦我有很多變量要檢查,在我的項目中使用長條件就會變得煩人地重復。 有任何想法嗎?

typeof 是不必要的。 此外, !== 將專門檢查類型,而不僅僅是假/真值。

function checkVar(varToCheck) {
  return varToCheck !== undefined && varToCheck !== null;
}

undefinedVar不是具有undefined值的變量,它從未被聲明為開頭,如果您嘗試引用它,它將拋出錯誤。 但是,如果您嘗試引用它們,未聲明的對象屬性不會拋出錯誤,並且會計算為undefined

我正在尋找的是一種訪問嵌套對象值的安全方式

我最終使用了一個名為Typy的小庫,它提供了我需要的功能。

我將離開 Typy 和我發現的其他一些替代方案:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM