javascript中bigint字面量必须以小写n结尾,仅支持整数,不支持小数点、科学计数法或十进制前导零;合法形式包括123n、-456n、0b1010n、0o755n、0xffn;错误写法如123.45n、1e10n、0x1a.5n、123n、0123n均报syntaxerror。

JavaScript 中 BigInt 字面量必须在整数末尾加小写字母 n,且只能表示整数,不支持小数点、科学计数法或前导零(严格模式下)。
合法的书写形式
以下写法全部正确,类型为 bigint:
-
123n—— 十进制正整数 -
-456n—— 十进制负整数 -
0b1010n—— 二进制(前缀0b或0B) -
0o755n—— 八进制(前缀0o或0O,不支持旧式0开头) -
0xFFn—— 十六进制(前缀0x或0X,字母大小写均可)
常见错误写法
这些会直接报 SyntaxError:
-
123.45n—— 含小数点,BigInt 只接受整数 -
1e10n—— 科学计数法不被允许 -
0x1A.5n—— 十六进制中不能出现小数点 -
123N或123N—— 后缀必须是小写n -
0123n—— 十进制带前导零,在严格模式下语法错误(与 BigInt 无关,但实际编码中需避免)
字面量 vs 构造函数
推荐优先使用字面量,简洁且性能更好:
-
9007199254740992n✅ 直接、安全、可读性强 -
BigInt("9007199254740992")✅ 适用于动态字符串输入 -
BigInt(9007199254740992)❌ 参数先转成 Number,已失精,会抛错
注意事项
字面量虽方便,但要注意类型隔离:
-
10n + 5会报TypeError,必须写成10n + 5n或10n + BigInt(5) - 作为对象键或数组索引时,
123n会被自动转为字符串"123",和123冲突;超大值如9007199254740993n则不会和9007199254740993混淆(后者会被 JS 自动近似为9007199254740992)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











