2012-11-29 51 views
0
// mystring contains dynamic text. Sometimes can be 
// null 
var a = mystring.split(" "); 
var proc = a[0] + " " + a[1]; 

如果a不包含文本,在split proc未定义之后。如果我尝试它的价值assing到一个文本框结果是“不确定”:如何检测JS变量是否未定义?

mytextbox.val(proc); 

enter image description here

所以我需要一种方法来使该PROC一贯的值,至少一个空字符串。

+3

'if' there was a way ... – jAndy

+0

我想'mytextbox.val(proc ||'')'会做到这一点。 – Jack

+0

@jAndy'if'不起作用。它总是成为undefined – anmarti

回答

2

你可以使用

(mystring || " ") 

将评估为mystring如果不是null,或者" "如果是。

或者,你可以把一个if声明周围的整个事情:

if (mystring != null) { 
    // stuff 
} else { 
    var proc = ""; 
} 
+0

对于这里的逻辑“OR”不是一个好的用例。如果'mystring'未定义或为空,它不应该执行所有的逻辑。 – jAndy

2
var proc = ""; 
if (mystring !== null) { // omit this if you're sure it's a string 
    var a = mystring.split(" "); 
    if (a.length > 1) { 
     proc = a[0] + " " + a[1]; 
    } 
} 

我敢肯定你的procundefined,但是字符串" undefined"

+0

为什么否定逻辑?读得更清楚,不是吗? 'if(mystring && mystring.length)' – jAndy

+0

@jAndy:你的意思是'null'逻辑?我仍然不确定OP是真的有空还是只有一个空字符串,所以我想明确说明它。顺便说一下,'mystring.length'不足以防止'a [1]'被定义为'undefined'。 – Bergi

相关问题