加勒比HEZYO黑人专区-久久精品国产99国产精品亚洲-精品国产18久久久久久-久久人妻少妇嫩草AV

歡迎光臨 織晶網絡官網!

  • 服務支持
  • 020-39182790
技術文檔您現在的位置:首頁 > 服務支持 > 技術文檔

JS中六種數據類型(五)——String

作者:織晶客服部   發布于:2016/8/15 9:24:44  點擊量:  來源:織晶網絡

String類型用于表示由零或多個16位Unicode字符組成的字符序列,即字符串。字符串可以由雙引號(“)或單引號(‘)表示,因此下面兩種字符串的寫法都是有效的:


var firstName="Marry";

var firstName='Jane';


    與PHP中的雙引號和單引號會影響對字符串的解釋方式不同,ECMAScript中的這兩種語法形式沒有什么區別。用雙引號表示的字符串和用單引號表示的字符串完全相同。不過,以引號開頭的字符串也必須以雙引號結尾,而以單引號開頭的字符串必須以單引號結尾。例如,下面這種字符串表示法會導致語法錯誤:

//語法錯誤(左右引號必須匹配)

var firstName="Nicholas';


    1、字符字面量

    String 數據類型包含一些特殊的字符字面量,也叫轉義序列,用于表示非打印字符,或者具有其他用途的字符。這些字符字面量如下表所示:

 


   
 
這些字符字面量可以出現在字符串中的任意位置,而且也將被作為一個字符來解析,如下面的例子所示:


var text="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;

//字符串“11”

var ageAsString=age.toString(); 

var fount=true;

//字符串"true"

var foundAsString=found.toString()

 

    數值,布爾值,對象和字符串值(沒錯,每個字符串也都有一個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()函數就返回了這兩個值的字面量。




上一篇:JavaScript的typeof運算符

下一篇:淺談 HTTPS 和 SSL/TLS 協議的背景與基礎