JavaScript的變數與資料型態(Part 3)---字串String

目錄 : 網頁設計學習課程參考

字串資料型態 (String)

JavaScript中的字串必需封包在兩個雙引號" "之間或兩個單引號 '  '之間. 例如

                                     document.write("This is line 1.<br/>");
                                  document.write('This is line 2.<br />');

均為有效的指令. 如字串是如同上例使用在document.write中, 字串中尚可包含HTML標籤. 上述的例子在輸出句子之後會進行換行. 使用者可依個人喜好使用雙引號或單引號. 但有一些情況下我們可以考慮一下用那一種較為方便. 舉例來說, 在英文中is not兩字常被合併縮寫為isn't. 如用JavaScript輸出, 我們可以用下列方式達成

                                      document.write("This isn't my book.<br />");

輸出This isn't my book. 這個句子. 因字串最左右兩側是用兩個雙引號" "封包,  字串中的單引號就不會被解釋為封包字串的字元.

很多時候為了強調句子中的某個字, 我們會想要把某個字用雙引號封包起來, 例如

                                     This is "the" book.

同上例, 我們可以用下列方式達成.

                                     document.write('This is "the" book.<br />');

此處我們改用單引號封包字串. 當然, 封包字串時不可用一個雙引號配一個單引號. 下列寫法是錯誤的

                                      document.write("This isn't my book.<br />');

許多人會主張封包字串不要用雙引號也同時用單引號, 為保有較佳的可讀性, 最好優先採用雙引號.

如果在字串中真的需要用到雙引號時, 我們不可以寫

                                     document.write("This is "the" book.<br />");

因為這會導致解析字串時發生錯誤. 此時我們可以採用逸出字元(escape character) \ 的協助, 在雙引號前加一個逸出字元成為 \"  , JavaScript即可把這組 \" 解析為一個雙引號. 例如,

                                     document.write("This is \"the\" book.<br />");

JavaScript常見的逸出字元可見http://www.w3schools.com/js/js_strings.asp.

例如, 如果想要輸出一個反斜線 \ , 我們必須使用 \\ . 此處第一個\是逸出字元.舉例來說,

          document.write("You can do comment in JavaScript using two of \\<br />");

逸出字元中有一些字元如 \t 表示一個Tab的空間, \n 表示一個換行字元.  這些表示一段空間位置的字元使用時的效果和使用的方式有關. 例如

                                      document.write("This is \n my book.<br />");

在此指令中的 \n 在執行時是沒有效果的. 因在執行document.write時, 字串內容中的 \n 是被解析為HTML內容, 然後由document.write輸出. 在寫HTML時,一個空白和多個空白, 換新行是沒有差別的, 全都輸出為一個空白.

但如果 \n 是用在alert 中,例如

                                      alert("This is \n my book.");

換行的效果是有效的.

另外, JavaScript字串中是可以用Unicode字元的. Unicode字元可用\uXXXX的格式表示, 並放入字串中使用. 例如

                                      document.write("2\u03B1 = \u03B2");

此處\u03B1是希臘字母Alpha, \u30B2是Beta. 請參見http://www.javascripter.net/faq/greekletters.htm

如在Aptana中輸入上述例子,


執行結果如下




PS: 版權所有,侵犯著作權必告.

留言