JavaScript是區(qū)分大小寫的:
關(guān)鍵字、變量、函數(shù)名、和所有的標(biāo)識(shí)符都必須采用一致的大小寫(一般我們都是寫成小寫的),這樣和當(dāng)初學(xué)C#的多樣式寫法有很大的區(qū)別。
比如:(這里以變量str和Str為例)
復(fù)制代碼 代碼如下:
var str='abc';
var Str='ABC';
alert(str);//輸出abc
假如str與Str為同一變量,那么alert(str);,輸出的結(jié)果應(yīng)為為ABC而不是如上圖所示abc。這恰恰說明:JavaScript是區(qū)分大小寫的。
Unicode轉(zhuǎn)義序列
Unicode字符集的出現(xiàn)是為了彌補(bǔ)ASCII碼只能表示128個(gè)字符的限制,而日常中我們想顯示漢字和日文的話,顯然ASCII是不可能的了。所以說Unicode是ASCII和Latin-1的超集。首先,JavaScript程序都是用Unicode字符集編寫而成的,但在一些計(jì)算機(jī)硬件和軟件里根本無法完整地顯示或者輸入U(xiǎn)nicode字符全集(比如:é),為了解決這一現(xiàn)象JavaScript定義了一種特殊序列,這種序列使用6個(gè)ASCII字符來代表任意16位Unicode內(nèi)碼,這種特殊序列統(tǒng)稱為Unicode轉(zhuǎn)義序列,它均以/u為前綴,其后跟隨4個(gè)十六進(jìn)制數(shù)
比如:
復(fù)制代碼 代碼如下:
var str='caf/u00e9';
var Str='café';
alert(Str+' '+str);// 可以看出顯示都是一樣的效果。
alert (Str===str);//輸出true
但我們應(yīng)該注意一點(diǎn),Unicode是允許多種方法對(duì)同一字符進(jìn)行編碼的,用上述的é轉(zhuǎn)義的例子來說明:
é:
1.可以使用Unicode字符/u00E9表示
2.亦可用e/u0301(語調(diào)字符)表示
復(fù)制代碼 代碼如下:
var str='caf/u00e9';
var Str='cafe/u0301';
alert(str+' '+Str); //如下圖所示,Str和str所輸出的結(jié)果都是一樣的
alert(Str===str); //結(jié)果是一樣的,可它們的二進(jìn)制編碼表示根本不一樣,所以輸出false
雖然顯示在文本編輯器上的結(jié)果是一樣的,可是它們的二進(jìn)制編碼表示根本不一樣,而編程語言最終都會(huì)轉(zhuǎn)化為本地平臺(tái)的計(jì)算機(jī)機(jī)械碼(二進(jìn)制編碼),計(jì)算機(jī)只能通過對(duì)二進(jìn)制編碼的比較才能得知結(jié)果,所以它們比較最終的結(jié)果只能是false
所以這正是 “Unicode是允許多種方法對(duì)同一字符進(jìn)行編碼的”最好的解釋,因?yàn)閁nicode標(biāo)準(zhǔn)為所有字符定義了一個(gè)首選的編碼格式以便于將文本轉(zhuǎn)化成統(tǒng)一格式的Unicode轉(zhuǎn)義序列以合適比較
再次以é為例:
比較facé與café中的é是否相同?
facé與café中的é都轉(zhuǎn)化為/u00E9或者都轉(zhuǎn)化為e/u0301,才能比較facé與café中的é
新聞熱點(diǎn)
疑難解答
圖片精選