今天嘗試直接用數(shù)字調(diào)用 Number 對象的方法,發(fā)現(xiàn)以下這個神奇的現(xiàn)象,望有知其所以然者多多指教。以下測試均用 toString() 方法為例,測試環(huán)境為Chrome 58.0.3029.110 (64-bit)0x01 直接用數(shù)字調(diào)用 toString()document.write(10.toString());此舉顯然行不通,并報以下錯誤:Uncaught SyntaxError: Invalid or unexpected token0x02 先在數(shù)字后加一點(.),再調(diào)用 toString()document.write(10..toString());加了一點后,可以正常輸出了。0x03 改用八進制和十六進制試試,仍保留數(shù)字后的一點(.)document.write(010..toString());document.write(0x10..toString());神奇的是,改為八進制或十六進制后,又出現(xiàn)了報錯:Uncaught SyntaxError: Unexpected token .0x04 依然用八進制和十六進制,但把數(shù)字后的一點(.)去掉document.write(010.toString());document.write(0x10.toString());把一點去掉后,又可以正常輸出了。0x05 結(jié)論在八進制和十六進制下,數(shù)字后不需加點就可直接調(diào)用 Number 對象的方法;而在十進制下,需要在數(shù)字后加上一點才能調(diào)用 Number 對象的方法。小弟只能觀察到 Javascript 中數(shù)字調(diào)用方法這一神奇的特性,卻不知其所以然,希望有知道其原理與知識點的同學多多指教。
Javascript中數(shù)字后面加一點(如10.)再調(diào)用方法的神奇現(xiàn)象
翻閱古今
2018-12-21 19:18:39