可能有人說這是什麼個格式?
其實還不止呢。
1 //1
1.2 //1.2
1.2e3 //1200
1.2e+3 //1200
1.2e-3 //0.0012
.12e+2 //12
-.12e-2 //-0.0012
當然這些只是十進制。我們來說說八進制和十六進制。
0x00, 0x11, 0xff 這種格式是十六進制,他們的十進制值分別是0, 17, 255。
01, 07, 010, 012 這個是八進制。 (這裡的0 是數字0,不是字母o)
可能有朋友質疑了,這不是十進制麼,怎麼說是八進制呢?
其實這就是八進制,只是在十進制前加了個0 而已。
當然不是所有加0 的都是八進制。
比如08, 09 其實是十進制,因為八進製到8 就進位,所以不可能出現08, 09 的。
是不是覺得視野開闊很多了,不再局限於十進制的表現形式了,也不必害怕被大牛寫的代碼嚇傻了。
可能有朋友會說,八進制,十六進制,支持e+- 這種格式麼?
0x12e3 === 4835
0x12e+3 === 305
0x12e-3 === 299
0x12 === 18
很明顯,不是我們想想中的結果。
其實0x12e3 是因為e 也是十六進制裡的字符,十六進制的字符是0-9 加上af,大小寫無所謂,所以0x12e3 是一個正常的十六進制數字格式。
0x12e+3 為什麼也不是呢, 其實它只是兩個數相加而已,0x12e 的十進制是302,加上3 就得到305 了,所以他是一個表達式,不是一個單純的數字。
而011e2 這樣的格式也是不對的,甚至直接報語法錯誤。
所以指數格式只能在十進制裡使用。
以後遇到1e6 別在天真的看成IE6 了。
也別再鬱悶.5 為什麼不會出錯,.1e1 為什麼等於1 了。
好了,今天就分享這麼個小知識點,自己慢慢去琢磨吧。