Javascript中String的valueOf方法

今天看了Javascript的基礎教程,其中說了一個關於typeof的問題。typeof運算符的做用就是返回一個變量的類型,若是變量是一個數字,則返回number。javascript

若是是字符串,則返回string,java

布爾類型則返回boolean,函數

函數則返回function,spa

若是變量是null或者其餘Javascript對象,就返回object。對象

未定義就返回undefined.教程

若是要判斷變量存在,並且是一個字符串的話;給出的判斷語句是:ip

if( (typeof unknownVariable != "undefined") && ( typeof unknownVariable.valueOf() == "string") )    {    ...    }內存

第一個先判斷變量有沒有定義,若是沒有定義的話就不用判斷第二個條件了,而第二個條件中爲何要加上valueOf這個運算符呢?我上網找了一下Java的string方面的知識;字符串

發現原來string類型有兩種定義方式,一種是直接定義,例如:String str ="javascript";這種至關於直接量,若是沒有valueOf的話,用typeof返回的也是string;而另一種是經過聲明定義的,例如:String str = new String("javascript");這種在沒有valueOf的狀況下,用typeof返回到的就是object,也就是說不能識別爲字符串類型。所以爲了不這種狀況,要加入valueOf運算符。string

書中給的解釋是說,使用valueOf返回的是一個字符串直接量。其實也就是取得string的原始值。

因此在Java中咱們通常定義string的直接量。這樣還能夠防止內存中太多冗餘的string對象。

相關文章
相關標籤/搜索