我想了解JavaScript八进制和十六进制计算。我知道我可以使用parseInt(string, radix)
来获得整数值。将八进制和十六进制数字转换为基数10
例如,当我尝试这个为什么值不同?
var octal = parseInt('026', 8);
var octal1 = parseInt('030', 8);
alert(octal); //22
alert(octal1); //24
var hex = parseInt('0xf5', 16);
var hex1 = parseInt('0xf8', 16);
alert(hex); //245
alert(hex1); //248
但是,如果我尝试将它保存在数组中,为什么答案不同并且不正确?
var x = new Array(026, 5, 0xf5, "abc");
var y = new Array(030, 3, 0xf8, "def");
alert('026 is ' + parseInt(x[0],8)); //18
alert('0xf5 is ' + parseInt(x[2],16)); //581
alert('030 is ' + parseInt(y[0],8)); //20
alert('0xf8 is ' + parseInt(y[2],16)); //584
你是对的。第一部分是不必要的。 'alert(026)'将产生'22'。阵列如何? – theking963 2012-02-23 19:47:02
请注意,'var foo = new Array(...);'几乎永远不会比'var foo = [...]更可取;'因为前者的字节更多,速度更慢,功能也相同。 – Phrogz 2012-02-23 19:49:14