You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何01232等于666?浏览器控制台运算异常咨询

为什么01232 / 1得到666而不是1232?

这是因为非严格模式下的JavaScript会把以0开头的整数字面量解析为八进制数,而非十进制数。

八进制的01232转成十进制的计算过程很直观:

1×8³ + 2×8² + 3×8¹ + 2×8⁰ = 512 + 128 + 24 + 2 = 666

所以你在控制台执行01232 / 1时,引擎先把八进制的01232转换成十进制的666,再做除法运算,结果自然是666。

如果想快速去掉数字开头的0并得到十进制的1232,推荐两种实用方法:

  • 把数字以字符串形式处理后转十进制:Number('01232') 或者 +'01232'
  • 开启严格模式(代码开头加'use strict';),此时以0开头的数字会直接抛出语法错误,从根源避免八进制解析的坑

内容的提问来源于stack exchange,提问作者Steve

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 21:05:53