mozilla
您的搜尋結果

    字面表達

     

    字面表達

    你在 JavaScript 使用字面表達來表示值。這是由你在 Script 中直接寫下的固定值,這些不是變數。本節說明下列各類型的字面表達︰

    陣列的字面表達

    陣列的字面表達是以零個以上的表達式所構成的列表,列表的每一項代表陣列的元素,以方括號 ([]) 包夾。當你使用陣列的字面表達建立陣列時,陣列會以指定的值作為元素來初始化,也會以指定的參數個數來設定陣列的長度。

    以下範例以三個元素和長度建立 coffees 陣列︰

    var coffees = ["French Roast", "Colombian", "Kona"];
    

    附註: 陣列的字面表達是物件初始化子的一種類型。參閱 物件初始化子的使用

    如果在頂層 Script 裡使用字面表達建立陣列,每一次對含有陣列的字面表達的表達式求值時,JavaScript 就會解譯這些陣列。此外,每一次呼叫函數時,在函數中使用的字面表達就會被建立。

    陣列的字面表達也是 Array 物件。參閱 Array 物件 取得有關 Array 物件的細節。

    陣列的字面表達的額外的逗號

    你不必在陣列的字面表達中指定所有的元素。如果你放上兩個連續的逗號,就會為未指定的元素預留空間來建立陣列。以下範例建立 fish 陣列︰

    var fish = ["Lion", , "Angel"];
    

    這個陣列含有兩個附有值的元素和一個空的元素(fish[0] 是“Lion”,fish[1]undefinedfish[2] 是“Angel”)。

    如果你在元表列表的尾部附帶逗號,這個逗號會被忽略。在下面的範例中,陣列的長度是 3,這裡不存在 myList[3]。所在位於列表裡面的逗號指的都是新的元素。

    var myList = ['home', , 'school', ];
    

    在下面的範例中,陣列的長度是 4,myList[0]myList[2] 是空的。

    var myList = [ , 'home', , 'school'];
    

    在下面的範例中,陣列的長度是 4,myList[1]myList[3] 是空的。只有最後面的逗號被忽略。

    var myList = ['home', , 'school', , ];
    

    布林的字面表達

    布林類型有兩種字面表達︰truefalse

    別被原始布林值的 truefalse 和 Boolean 物件的 true、false 的值混淆了。Boolean 物件是以原始布林資料類型包裝起來的。參閱 Boolean 物件 取得更多資訊。

    整數

    整數可以表示為十進制、十六進制、八進制。十進制整數的字面表達由一系列不以 0 開頭的數字組成。以 0 開頭的整數的字面表達表示他是八進制,以 0x(或 0X)開頭表示十六進制。十六進制整數可以包含數字 (0-9) 和 a-f 和 A-F 的字母。八進制整數只可以包含 0-7 的數字。

    八進制整數的字面表達在 ECMA-262 第三版的標準中已不被推薦。JavaScript 1.5 為了向後相容,仍然繼續支援。

    整數的字面表達的一些範例︰

    0、117、-345(十進制)
    015、0001、-077(八進制)
    0x1123、0x00111、-0xF1A7(十六進制)
    

    浮點數的字面表達

    浮點數的字面表達可分為以下部分︰

    • 可帶正負號的十進制整數(在前面加上“+”或“-”),
    • 小數點(“.”),
    • 小數部分(十進制數),
    • 指數部分。

    指數部分是以一個“e”或“E”後接數字所組成,可帶正負符號(在前面加上“+”或“-”)。浮點數的字面表達至少必須要有一個數字和一個小數點或“e”(或“E”)。

    浮點數的字面表達的一些範例有 3.1415、-3.1E12、.1e12、2E-12。

    表示成更精簡的語法結構是︰

    [digits][.digits][(E|e)[(+|-)]digits]
    

    例如︰

    3.14
    2345.789
    .3333333333333333333
    

    物件的字面表達

    物件的字面表達是以零個以上的 屬性名稱-關聯值 的配對所構成,以花括號 ({}) 包夾。你不應該在語句的開始處使用物件的字面表達。這會導致錯誤,或出現非預期的行為,因為 { 會被解譯成區塊的開始處。

    以下是物件的字面表達的範例。car 物件的第一個元素定義了 myCar 屬性;第二個元素,getCar 屬性,含有函數 (CarTypes("Honda"));;第三個元素,special 屬性,使用了現存的變數(Sales)。

    var Sales = "Toyota";
    
    function CarTypes(name) {
      if (name == "Honda")
         return name;
      else
         return "Sorry, we don't sell " + name + ".";
    }
    
    var car = { myCar: "Saturn", getCar: CarTypes("Honda"), special: Sales };
    
    document.write(car.myCar);   // Saturn
    document.write(car.getCar);  // Honda
    document.write(car.special); // Toyota
    

    此外,你可以使用數值或字串的字面表達作為屬性的名稱,或者嵌入其他的物件。以下是上述的範例。

    var car = { manyCars: {a: "Saab", b: "Jeep"}, 7: "Mazda" };
    
    document.write(car.manyCars.b); // Jeep
    document.write(car[7]); // Mazda
    

    請注意︰

    var foo = {a: "alpha", 2: "two"};
    document.write(foo.a);    // alpha
    document.write(foo[2]);   // two
    //document.write(foo.2);  // 錯誤: 參數列表後面少了 )
    //document.write(foo[a]); // 錯誤: a 尚未定義
    document.write(foo["a"]); // alpha
    document.write(foo["2"]); // two
    

    字串的字面表達

    字串的字面表達是以零個以上的字元所構成,並以雙引號 (") 或單引號 (') 包夾。字串必須以相同的引號包夾,也就是成對的單、雙引號。以下是字串的字面表達的範例︰

    • "blah"
    • 'blah'
    • "1234"
    • "one line \n another line"
    • "John's cat"

    你可以在字串的字面表達的值上呼叫 String 物件的所有方法—JavaScript 會自動的把字串的字面表達轉換成臨時的 String 物件,呼叫方法,然後丟棄臨時的 String 物件。你也可以使用 String.length 屬性︰

    • "John's cat".length

    除非你特別使用 String 物件,否則就應該使用字串的字面表達。參閱 String 物件 取得有關 String 物件的細節。

    在字串中使用特殊字元

    除了普通的字元以外,你也可以在字串中包含特殊字元,如下範例︰

    "one line \n another line"
    

    下表列出了你可以使用於 JavaScript 字串中的特殊字元。

    字元 意義
    \b 後退一格
    \f 換頁
    \n 換行
    \r 歸位
    \t Tab
    \v 垂直 Tab
    \' 單引號
    \" 雙引號
    \\ 反斜線 (\)。
    \XXX 使用介於 0 至 377 之間的三個八進制數 XXX 來表示以 Latin-1 編碼的字元。例如,\251 是版權符號的八進制內碼序列。
    \xXX 使用介於 00 至 FF 之間的兩個十六進制數 XX 來表示以 Latin-1 編碼的字元。例如,\xA9 是版權符號的十六進制內碼序列。
    \uXXXX 使用四個十六進制數 XXXX 來表示 Unicode 字元。例如,\u00A9 是版權符號的 Unicode 內碼序列。參閱 Unicode 的跳脫序列

    表 2.1: JavaScript 的特殊字元

    字元的跳脫

    對於未列在表 2.1 的字元,加在前面的反斜線將會被忽略,但是這個作法已被建議廢除,應該要避免。

    你可以在字串裡面的引號前面插入反斜線。這就是引號的跳脫。例如︰

    var quote = "He read \"The Cremation of Sam McGee\" by R.W. Service.";
    document.write(quote);
    

    結果會是︰

    He read "The Cremation of Sam McGee" by R.W. Service.
    

    要在字串裡包含反斜線,你必須跳脫反斜線字元。例如,要把檔案路徑 c:\temp 代入成字串,方法如下︰

    var home = "c:\\temp";
    

    Document Tags and Contributors

    Contributors to this page: happysadman, teoli
    最近更新: teoli,