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

歡迎光臨 織晶網(wǎng)絡(luò)官網(wǎng)!

  • 服務(wù)支持
  • 020-39182790
技術(shù)文檔您現(xiàn)在的位置:首頁 > 服務(wù)支持 > 技術(shù)文檔

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

作者:織晶客服部   發(fā)布于:2016/8/15 9:24:44  點(diǎn)擊量:  來源:織晶網(wǎng)絡(luò)

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


var firstName="Marry";

var firstName='Jane';


    與PHP中的雙引號(hào)和單引號(hào)會(huì)影響對(duì)字符串的解釋方式不同,ECMAScript中的這兩種語法形式?jīng)]有什么區(qū)別。用雙引號(hào)表示的字符串和用單引號(hào)表示的字符串完全相同。不過,以引號(hào)開頭的字符串也必須以雙引號(hào)結(jié)尾,而以單引號(hào)開頭的字符串必須以單引號(hào)結(jié)尾。例如,下面這種字符串表示法會(huì)導(dǎo)致語法錯(cuò)誤:

//語法錯(cuò)誤(左右引號(hào)必須匹配)

var firstName="Nicholas';


    1、字符字面量

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

 


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


var text="sigma: \u03a3.";


    這個(gè)例子中的變量text有28個(gè)字符,其中6個(gè)字符長(zhǎng)的轉(zhuǎn)移序列表示1個(gè)字符。任何字符串的長(zhǎng)度都可以通過訪問其length屬性取得,例如:


alert(text.length);//輸出28


    這個(gè)屬性返回的字符數(shù)包括16位字符的數(shù)目。如果字符串包含雙字節(jié)字符,那么length屬性可能不會(huì)精確的返回字符串中字符數(shù)目。


    2.字符串的特點(diǎn)

    ECMAScript中的字符串是不可改變的,也就是說,字符串一旦創(chuàng)建,它們的值就不能改變。要改變某個(gè)變量保存的字符串,首先要銷毀原來的字符串,然后再用另一個(gè)包含新值的字符串填充該變量,例如:


var  lang="Java";

lang=lang+"Script";


    以上示例中的變量lang開始時(shí)包含字符串“Java”。而第二行代碼把lang的值重新定義為“Java”與“Script”的組合,即“JavaScript”。實(shí)現(xiàn)這個(gè)操作的過程如下:首先創(chuàng)建一個(gè)能容納10個(gè)字符的新字符串,然后再這個(gè)字符串中填充"Java"和“Script”,最后一步是銷毀原來的字符串“Java”和字符串“Script”,因?yàn)檫@兩個(gè)字符串已經(jīng)沒用了。這個(gè)過程是在后臺(tái)發(fā)生的,而這也是在某些舊版本的瀏覽器(如版本低于1.0的Firefox,IE6等)中拼接字符串時(shí)速度很慢的原因所在。但這些瀏覽器后來的版本已經(jīng)解決了這個(gè)低效率的問題。

    3.轉(zhuǎn)換為字符串

    要把一個(gè)值轉(zhuǎn)換為一個(gè)字符串有兩種方式。第一種是使用幾乎每個(gè)值都有的toString()方法。這個(gè)方法唯一要做的就是返回相應(yīng)值的字符串表現(xiàn)。來看下面的例子:


var age=11;

//字符串“11”

var ageAsString=age.toString(); 

var fount=true;

//字符串"true"

var foundAsString=found.toString()

 

    數(shù)值,布爾值,對(duì)象和字符串值(沒錯(cuò),每個(gè)字符串也都有一個(gè)toString()方法,該方法返回值返回串的一個(gè)副本)都有toString()方法。但null和undefined值沒有這個(gè)方法。

    多數(shù)情況下,調(diào)用toString方法不必傳遞參數(shù)。但是,在調(diào)用數(shù)值的toString()方法時(shí),可以傳遞一個(gè)參數(shù):輸出數(shù)值的基數(shù)。默認(rèn)情況下,toString()方法以十進(jìn)制格式返回?cái)?shù)值的字符串表示。而通過傳遞基數(shù),toString()輸出以二進(jìn)制、八進(jìn)制、十六進(jìn)制,乃至其他任意有效進(jìn)制格式表示的字符串值。下面給出幾個(gè)例子:


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"


    通過這個(gè)例子可以看出,通過指定基數(shù),toString()方法會(huì)改變輸出的值。而數(shù)值10根據(jù)基數(shù)的不同,可以在輸出時(shí)被轉(zhuǎn)換為不同的數(shù)值格式。注意,默認(rèn)的(沒有參數(shù)的)輸出值與指定基數(shù)10時(shí)的輸出值相同。

    在不知道要轉(zhuǎn)換的值是不是null或undefined的情況下,還可以使用轉(zhuǎn)型函數(shù)String(),這個(gè)函數(shù)能夠?qū)⑷魏晤愋偷闹缔D(zhuǎn)換為字符串。String()函數(shù)遵循下列轉(zhuǎn)換規(guī)則:

    如果值有toString()方法,則調(diào)用該方法(沒有參數(shù))并返回相應(yīng)的結(jié)果;

    如果值是null,則返回"null";

    如果值是undefined,則返回“undefined”

    下面再看幾個(gè)例子:


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"


    這里先后轉(zhuǎn)換了4個(gè)值:數(shù)值、布爾值、null和undefined。數(shù)值和布爾值的轉(zhuǎn)換結(jié)果與調(diào)用toString()方法得到的結(jié)果相同。因?yàn)閚ull和undefined沒有toString()方法,所以String()函數(shù)就返回了這兩個(gè)值的字面量。




上一篇:JavaScript的typeof運(yùn)算符

下一篇:淺談 HTTPS 和 SSL/TLS 協(xié)議的背景與基礎(chǔ)