将八进制值传递给新数字函数
Passing octal value to new number function
我做了这样的东西:
Number.prototype.foo = function () {
//code
}
// Octal number!
(013).foo();
但是在 foo 函数内部检查这个,我得到 11 作为值......怎么了?
你期望会发生什么?
Javascript 将所有以零开头的整数视为八进制[*],因此013
的实际值确实是 11
(十进制(。 Number
类只处理值,并且不会知道您最初传入了八进制常量。
[*] 包含数字 8 或 9 的整数有一个例外 - 因为这些在八进制中是不合法的,因此即使存在前导零,解析器也会隐式地将它们视为十进制。
八进制数一旦被解释为数字,就与十进制数没有什么不同。
013
与11
完全相同。 一旦 JavaScript 看到它是一个数字,它只是一个数字——它不记得它的"八进制"或"十进制"。
这不是一个真正的问题,因为您可以轻松地将其转换回八进制表示形式:
var dec = 11;
alert(dec.toString(8)); // returns "13"
数字以十进制格式返回,但据我所知,它的数字运算不会有任何不同。另请注意,提供给 JavaScript 的所有八进制数将立即以这种方式"转换":
alert(013); // returns 11
相关文章:
- 函数将输出nan而不是数字,为什么
- 通过jQuery函数将拉丁数字更改为波斯数字并添加逗号
- Javascript函数用于检查数字并返回
- PHP函数识别3个数字中最低的一个并更改其类
- 如何创建一个确定2个数字之间值的函数
- 增加一个数字并将其附加到函数
- 如何在JavaScript中使用此函数对范围内的所有数字求和
- 在javascript中对数字调用构造函数
- 为什么模块化幂函数在 Python 和 Javascript 中对于大数字的工作方式不同
- 类型错误:数字不是一个函数
- 如何将以下函数更改为字母数字输出
- 给定一个带有数字的数组,我如何编写一个递归函数,当 2 个元素加起来为一个目标时,它会在数组中查找索引
- 雄辩的Javascript:无法理解在sum函数中如何确定数字值
- 为什么可以't JavaScript构造函数创建字符串或数字
- 在 JavaScript 中,括号中的数字/函数以逗号分隔
- “数字”函数在 JavaScript 中做什么
- 我的数字函数的javascript验证无法正常工作
- 将八进制值传递给新数字函数
- 为什么 JavaScript 数字函数返回此数字的错误值
- 限制数字函数但允许字母数字值的 JavaScript 函数