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