我正在研究this article并想知道10e1
是整数文字还是浮点文字。
我知道100
是一个整数文字。如果我写10e1
代替它会有什么不同吗?
当我签入spec here(7)或here(5.1)时,没有任何名为“Floating Point Literal”的内容。这只是MDN中另一个不正确的文档吗?知道浮点数字法指的是什么吗?
总结:
100
和10e1
是否属于同一类文字?如果是,哪个?答案 0 :(得分:2)
如果我写
10e1
而不是100
,会有什么不同吗?
不是结果,不是。但是转发和解析它是一个字符(因此最好使用1e2
:- D),这会影响可读性。不是每个人都熟悉指数。
在规范中没有任何名为" Floating Point Literal"。这只是MDN中另一个不正确的文档吗?
MDN指南肯定是可疑的,命名一个部分"整数"在一篇关于JS类型的文章中至少令人困惑。
100
和10e1
是否属于同一类文字?如果是的话,哪个?
是的,他们都是数字文字。 JS不区分具有和不具有小数部分的数字,它们都具有相同的浮点类型。十进制数字文字只有一个语法,小数位数和指数是可选的。
知道Floating Point Literal所指的是什么吗?
它的意思是"(数字)字面值为浮点数",就像" Integer literal"表示"(数字)字面表示一个表示整数的浮点数"。
答案 1 :(得分:1)
DecimalLiteral::
DecimalIntegerLiteral.DecimalDigits(opt) ExponentPart(opt)
.DecimalDigits ExponentPart(opt)
DecimalIntegerLiteral ExponentPart(opt)
DecimalIntegerLiteral::
0
NonZeroDigitDecimalDigitsopt
根据规范,100
和10e1
都是“DecimalLiteral”,而100
也有资格成为“DecimalIntegerLiteral”
这些都不会对@Thilo
的评论中提到的开发人员产生任何真正的影响根据IEEE-754的内部表示也应该是相同的。
Status Sign [1] Exponent [11] Significand [52]
Normal 0 (+) 10000000101 (+6) 1.1001000000000000000000000000000000000000000000000000 (1.5625)