请考虑以下示例。
在这种情况下,isNaN返回false
> isNaN('014e02768282049601000001')
< false
但是这里它返回true
> isNaN('014e0276861d077601000001')
< true
这两个带十六进制数字的字符串有什么区别?
JS检测数字和非数字的可靠方法是什么?
谢谢!
答案 0 :(得分:2)
这两个字符串不会被解释为十六进制数字。十六进制数字必须以0x
开头。
但第一个具有有效数字文字的形式:
2e3
与
相同2 * Math.pow(10,3);
第二个无效,因为它包含d
。
答案 1 :(得分:1)
014e02768282049601000001
是以指数形式编写的有效数字,例如:5e2
(== 500 = 5 *10²)。第二个包含一个字母d
,没有特别的含义,因此不是数字。
您可以在JavaScript和许多其他语言中声明指数形式:
var b = 3e-20;
字符e
,-
,+
和.
属于定义数字时使用的字符集(当然,如果使用得当)。其他角色没有。