试试这个:
var num = 040;
console.log(num); // 32Run Code Online (Sandbox Code Playgroud)
从什么时候开始40 = 32?
在查看parseInt(string, radix)中:https :
//developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/parseInt
13除此以外,所有示例都非常合理。
根据一个示例,parseInt(015, 10)将返回13。假设以0开头的数字被视为八进制,10这与在基数位置出现的数字无关,这是有道理的。
因此,如果在问题标题中指定了八进制:
parseInt(021, 8)
那么为什么不17(相15对于Mozilla文档和我在jsfiddle中的测试)呢?
任何见识将不胜感激。
我们正在办公室讨论这个数学在JavaScript中是如何工作的.
有一个实例,我们乘以010而不是10,这给出了不正确的返回值.
例如...
25.25 * 010 = 202
Run Code Online (Sandbox Code Playgroud)
25.25 * 10 = 252.5 正如所料
什么甚至更奇怪的是,如果你做parseFloat(010)它给你8!
class Person {
constructor(name, address, phone) {
this.name = name;
this.address = address;
this.phone = phone;
}
call() {
console.log(`Calling ${this.phone}...`)
}
}
const tom = new Person('Tom', 'Uden', 0619616);
tom.call();
Run Code Online (Sandbox Code Playgroud)
调用它时,控制台只显示“619616”。当我添加console.log(tom.phone)它时,它会记录整个数字。为什么在调用方法时排除零?
在 Javascript 中有一些我不理解的行为:
console.log(011666)登录5046?typeof typeof 500登录string?javascript javascript-objects console.log firefox-developer-tools google-developers-console