2012-11-29 54 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

相關問題