首頁  >  文章  >  web前端  >  解析JavaScript中點號「.」的多義性_javascript技巧

解析JavaScript中點號「.」的多義性_javascript技巧

WBOY
WBOY原創
2016-05-16 17:11:161279瀏覽

點號「.」在JavaScript中有兩種語意

語意1、表示算術中的小數點(浮點數),如 2.5

語意2、取物件屬性、方法,如 [].push(2)

這幾乎沒有任何難理解的地方,但下面這個問題則很有趣。

複製程式碼 程式碼如下:

// 這行程式碼會如何執行
1
1
1
11111
1
1

1

1

1
1

11 .toString(); Firebug 中如下


這裡的點號表達的是上述的語意1,因此點號後面必須跟一個數字,這裡跟的是toString,報語法錯了。

解決方法很簡單,如加個小括號 代碼如下:


(1).toString();

還可以這麼寫,但難理解些


複製程式碼複製程式碼


複製程式碼


程式碼如下:
1..toString();之所以瀏覽器中都能運行,是因為各瀏覽器JS引擎都把“ 1..toString()」理解成了「1.0.toString()」。這裡第一個點號是語意1,第二個點號是語意2。
還有更奇怪的寫法,竟然也沒有報錯




複製程式碼

程式碼如下: 程式碼如下: 程式碼如下:1 .toString(); // 注意點號前面有一個空格顯然,這裡的點號是語意2,即JS引擎會忽略點運算子前邊的空格,其實無論前後的空格都會忽略。如下複製程式碼 程式碼如下:1 . toString();都有一個空格1  .  toString(); // 點號前後各有兩個空格1    .toString(); // 點號前有兩個tab 1    .    toString(); / / 點號前後各有一個tab JS引擎不但會忽略空格,也會忽略tab。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn