2010-07-15 77 views
2

因爲使用.toString()作爲空變量不起作用,並且我無法在我的特定應用程序中檢查其中的每一個。Javascript,String:獲取Javascript var作爲字符串

我知道這是一個愚蠢而簡單的問題,現在我的答案肯定是盯着我。

+0

「字面意思」 - 雙關語意? – heisenberg 2010-07-15 18:51:15

+0

例如,如果傳遞了'null'或'undefined',你期望在字符串中看到什麼。 – Anurag 2010-07-15 19:05:51

回答

5

非級聯的路線是使用字符串()構造:

var str = new String(myVar); // returns string object 
var str = String(myVar);  // returns string value 

當然,var str = "" + myVar;是短且容易。請注意,這裏的所有方法都會將值爲null的變量轉換爲"null"。如果你想解決這個問題,你可以使用||設置默認當一個變量的值是「falsey」像空:

var str = myVar || ""; 

只是,只要你知道和也將導致""在這裏。

https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/String

2

如何

var str = '' + someVar; 
+0

似乎有點hackish ...?呃,它會起作用。 – Hamster 2010-07-15 18:49:30

+0

@Hamster當然,它是黑客,所以堅持它的功能,使其更清潔。然後,如果你最終得到新的變量來處理,你可以變得更聰明。 – 2010-07-15 18:55:00

+0

+1 - 簡而言之,就像'String(myVar)'一樣工作,然而,當一個表單值本身是''null''時,可能會出現邊界情況。這些都是可以讓生活在地獄1個月的錯誤:) – Anurag 2010-07-15 19:03:46

0

......怎麼樣?

var theVarAsString = "" + oldVar;

1

什麼

var str = (variable || ""); 
//or 
(variable || "").toString(); 

當然,你會得到這樣的falseundefined等等,太多,但是這將是一個空字符串,而不是"null"

1

String(null)返回"null",如果表單域的值本身爲null,則可能會導致問題。那麼簡單的包裝函數呢?

function toString(v) { 
    if(v == null || v == undefined) { 
     return ""; 
    } 
    return String(v); 
} 

只有nullundefined,和空字符串應該返回空字符串。包括整數0在內的所有其他falsy值將返回其他值。一些測試,

> toString(null) 
"" 
> toString(undefined) 
"" 
> toString(false) 
"false" 
> toString(0) 
"0" 
> toString(NaN) 
"NaN" 
> toString("") 
""