讓我們先看一下隐式地方法:開始我們會聲明一個新的變量,并給它賦一個基本類型的新字元串來初始化它。現在試着使用一下typeof()來确認一下變量myStringPrimitive 中的資料就是一個基本字元串:
<html>
<body>
<script type="text/javascript">
var myStringPrimitive= "abc";
document.write( typeof( myStringPrimitive ) );
</script>
</body>
</html>
可是我們仍然可以在它上面使用String對象的方法。JavaScript會把這個字元串從基本類型簡單的轉換成一個臨時的String對象,在它上面使用方法,然後再把資料類型轉換成字元串。我們可以使用String對象的length屬性來試驗一下:
document.write( "<br>" );
document.write( myStringPrimitive.length );
下面試你在浏覽器視窗中會看到結果:
string
3
是以myStringPrimitive 在臨時轉換後仍然儲存着一個基本類型的字元串。我們也可以顯式地建立String對象:使用new關鍵字和構造函數(constructor)String():
var myStringObject = new String( "abc" );
document.write( typeof( myStringObject ) );
document.write( "<br />" );
document.write( myStringObject.length );
加載這個頁面會顯示如下結果:
object
Object
這個腳本和前一腳本的唯一差别就在第一行,我們建立新對象并為這個String對象提供一些字元存儲:
檢查length屬性的結果是一樣的,不管我們是顯式還是隐式地建立String對象。顯式或隐式地建立String對象的唯一真正的差別是如果你要多次重複的使用同樣的字元串,顯式地建立字元串有更高的效率。顯式地建立String對象還有助于防止JavaScript解釋器混淆數值和字元串。
本文轉自 牛海彬 51CTO部落格,原文連結:http://blog.51cto.com/newhappy/76834,如需轉載請自行聯系原作者