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

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 21:32:35
字體:
供稿:網(wǎng)友

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

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

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

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

復制代碼 代碼如下:

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

Firebug 中如下



這里的點號表達的是上述的語義1,因此點號后面必須跟一個數(shù)字,這里跟的是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。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 巨鹿县| 抚远县| 雷州市| 凤凰县| 宁安市| 普陀区| 安化县| 漯河市| 甘泉县| 综艺| 湘潭市| 理塘县| 汶川县| 清水河县| 大名县| 胶州市| 进贤县| 正阳县| 兴国县| SHOW| 东乌珠穆沁旗| 阳城县| 罗甸县| 定南县| 皮山县| 罗定市| 宝丰县| 闽侯县| 北海市| 富锦市| 大悟县| 汕头市| 左贡县| 海安县| 都安| 新化县| 武清区| 鹿邑县| 广水市| 米脂县| 大余县|