国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

解析JavaScript中點號“.”的多義性

2024-05-06 15:56:44
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了JavaScript中點號“.”的多義性。需要的朋友可以過來參考下,希望對大家有所幫助

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

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

語義2、取對象屬性、方法,如 [].push(2)

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

復制代碼 代碼如下:


// 這行代碼會如何執行
1.toString();


Firebug 中如下

解析JavaScript中點號“.”的多義性



這里的點號表達的是上述的語義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。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 永德县| 巴楚县| 新田县| 娄烦县| 四子王旗| 茶陵县| 博野县| 平和县| 广宗县| 萨迦县| 灵石县| 临漳县| 扎兰屯市| 崇仁县| 延长县| 五家渠市| 元朗区| 岚皋县| 榕江县| 遂川县| 广昌县| 和平县| 五大连池市| 辽阳县| 宜章县| 铜梁县| 正蓝旗| 鲜城| 新宁县| 巴马| 顺平县| 玛曲县| 敦煌市| 毕节市| 措勤县| 怀集县| 娱乐| 开封市| 卓尼县| 芦溪县| 德格县|