我想测试JavaScript变量是否有值。
var splitarr = mystring.split( " " );
aparam = splitarr [0]
anotherparam = splitarr [1]
//.... etc
但是字符串可能没有足够的条目,所以稍后我想测试它。
if ( anotherparm /* contains a value */ )
我该怎么做?
答案 0 :(得分:13)
if (typeof anotherparm == "undefined")
答案 1 :(得分:3)
在JavaScript中,空字符串的计算结果为FALSE,因此您可以执行以下操作:
if (anotherparam) {...}
答案 2 :(得分:2)
您可以通过以下方式检查字符串中的字符数:
var string_length = anotherparm.length;
答案 3 :(得分:2)
一般来说,这是一个灰色的区域......“你有什么价值”是什么意思?值null
和undefined
是您可以分配给变量的合法值...
String函数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
答案 4 :(得分:1)
如果变量不存在,一个技巧是使用or
运算符来定义值。如果您正在寻找布尔“true
”或“false
”,请不要使用此
var splitarr = mystring.split( " " );
aparam = splitarr [0]||''
anotherparam = splitarr [1]||''
这可以防止在变量不存在时抛出错误并允许您将其设置为默认值,或者您选择的任何内容。
答案 5 :(得分:1)
上面有很多答案,你会知道如何检查变量的值,所以我不再重复了。
但是,您尝试编写的逻辑可能更好地使用不同的方法编写,即通过查看拆分数组的长度而不是将数组的内容分配给变量然后进行检查。
即。 if(splitarr.length < 2)
然后显然anotherparam
肯定“没有价值”。
所以,而不是做,
if(anotherparam /* contains a value */ )
{
//dostuff
}
你可以做到,
if(splitarr.length >= 2)
{
//dostuff
}