簡體   English   中英

如何測試變量是否在 JavaScript 中有值?

[英]How can I test whether a variable has a value in JavaScript?

我想測試 JavaScript 變量是否有值。

var splitarr =  mystring.split( " " );
aparam = splitarr [0]
anotherparam = splitarr [1]
//.... etc

但是字符串可能沒有足夠的條目,所以稍后我想對其進行測試。

if ( anotherparm /* contains a value */ )

我該怎么做呢?

 if (typeof anotherparm == "undefined")

一個空字符串在 JavaScript 中計算為 FALSE,所以你可以這樣做:

if (anotherparam) {...}

您可以通過以下方式檢查字符串中的字符數:

var string_length = anotherparm.length;

一般來說,它是一個灰色區域......你所說的“有價值”是什么意思? nullundefined是可以分配給變量的合法值...

字符串 function split()始終返回一個數組,因此使用結果的length屬性來確定存在哪些索引。 超出范圍的索引將具有值undefined

但從技術上講(在String.split()的上下文之外)你可以這樣做:

js>z = ['a','b','c',undefined,null,1,2,3]
a,b,c,,,1,2,3
js>typeof z[3]
undefined
js>z[3] === undefined
true
js>z[3] === null
false
js>typeof z[4]
object
js>z[4] === undefined
false
js>z[4] === null
true

一個技巧是在變量不存在時使用or運算符來定義一個值。 如果您正在尋找 boolean “ true ”或“ false ”,請不要使用它

var splitarr =  mystring.split( " " );
aparam = splitarr [0]||''
anotherparam = splitarr [1]||''

這可以防止在變量不存在時引發錯誤,並允許您將其設置為默認值或您選擇的任何值。

上面有這么多答案,你會知道如何檢查變量的值,所以我不會重復。

但是,您嘗試編寫的邏輯可能最好用不同的方法編寫,即通過查看拆分數組的長度而不是將數組的內容分配給變量然后檢查。

if(splitarr.length < 2)那么顯然anotherparam參數肯定是“不包含值”。

所以,與其做,

if(anotherparam /* contains a value */ )
{
   //dostuff
}

你可以做,

if(splitarr.length >= 2)
{
   //dostuff
}

暫無
暫無

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

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