1. 程式人生 > >JS中六種資料型別(五)——String

JS中六種資料型別(五)——String

    String型別用於表示由零或多個16位Unicode字元組成的字元序列,即字串。字串可以由雙引號(“)或單引號(‘)表示,因此下面兩種字串的寫法都是有效的:     var firstName="Marry";     var firstName='Jane';     與PHP中的雙引號和單引號會影響對字串的解釋方式不同,ECMAScript中的這兩種語法形式沒有什麼區別。用雙引號表示的字串和用單引號表示的字串完全相同。不過,以引號開頭的字串也必須以雙引號結尾,而以單引號開頭的字串必須以單引號結尾。例如,下面這種字串表示法會導致語法錯誤:    var firstName="Nicholas'; //語法錯誤(左右引號必須匹配)
    1、字元字面量     String 資料型別包含一些特殊的字元字面量,也叫轉義序列,用於表示非列印字元,或者具有其他用途的字元。這些字元字面量如下表所示:
這些字元字面量可以出現在字串中的任意位置,而且也將被作為一個字元來解析,如下面的例子所示:         var text="This is the letter sigma: \u03a3."; 這個例子中的變數text有28個字元,其中6個字元長的轉移序列表示1個字元。任何字串的長度都可以通過訪問其length屬性取得,例如: alert(text.length);//輸出28 這個屬性返回的字元數包括16位字元的數目。如果字串包含雙位元組字元,那麼length屬性可能不會精確的返回字串中字元數目。
   2.字串的特點     ECMAScript中的字串是不可改變的,也就是說,字串一旦建立,它們的值就不能改變。要改變某個變數儲存的字串,首先要銷燬原來的字串,然後再用另一個包含新值的字串填充該變數,例如: var  lang="Java"; lang=lang+"Script";     以上示例中的變數lang開始時包含字串“Java”。而第二行程式碼把lang的值重新定義為“Java”與“Script”的組合,即“JavaScript”。實現這個操作的過程如下:首先建立一個能容納10個字元的新字串,然後再這個字串中填充"Java"和“Script”,最後一步是銷燬原來的字串“Java”和字串“Script”,因為這兩個字串已經沒用了。這個過程是在後臺發生的,而這也是在某些舊版本的瀏覽器(如版本低於1.0的Firefox,IE6等)中拼接字串時速度很慢的原因所在。但這些瀏覽器後來的版本已經解決了這個低效率的問題。
   3.轉換為字串     要把一個值轉換為一個字串有兩種方式。第一種是使用幾乎每個值都有的toString()方法。這個方法唯一要做的就是返回相應值的字串表現。來看下面的例子: var age=11; var ageAsString=age.toString();  //字串“11” var fount=true; var foundAsString=found.toString() //字串"true" 數值,布林值,物件和字串值(沒錯,每個字串也都有一個toString()方法,該方法返回值返回串的一個副本)都有toString()方法。但null和undefined值沒有這個方法。     多數情況下,呼叫toString方法不必傳遞引數。但是,在呼叫數值的toString()方法時,可以傳遞一個引數:輸出數值的基數。預設情況下,toString()方法以十進位制格式返回數值的字串表示。而通過傳遞基數,toString()輸出以二進位制、八進位制、十六進位制,乃至其他任意有效進位制格式表示的字串值。下面給出幾個例子: var num=10; alert(num.toString());  //"10" alert(num.toString(2));  //"1010" alert(num.toString(8));  //"12"
alert(num.toString(10));  //"10"
alert(num.toString(16));   //"a"
通過這個例子可以看出,通過指定基數,toString()方法會改變輸出的值。而數值10根據基數的不同,可以在輸出時被轉換為不同的數值格式。注意,預設的(沒有引數的)輸出值與指定基數10時的輸出值相同。     在不知道要轉換的值是不是null或undefined的情況下,還可以使用轉型函式String(),這個函式能夠將任何型別的值轉換為字串。String()函式遵循下列轉換規則:     如果值有toString()方法,則呼叫該方法(沒有引數)並返回相應的結果;     如果值是null,則返回"null";     如果值是undefined,則返回“undefined”     下面再看幾個例子: var value1=10; var value2=true;
var value3=null;
alert(String(value1));    //"10" alert(String(value2));    //"true" alert(String(value3));    //"null"
alert(String(value4));    //"undefined"
    這裡先後轉換了4個值:數值、布林值、null和undefined。數值和布林值的轉換結果與呼叫toString()方法得到的結果相同。因為null和undefined沒有toString()方法,所以String()函式就返回了這兩個值的字面量。





    瀏覽更多文章請訪問 www.wangchuangshi.com