JavaScript 以八进制计算表达式

JavaScript Calculate expression in octal radix

例如,我有以下字符串:

15+6

我想用八进制计算这个表达式。所以我想得到:

23

js中有支持这种情况的函数吗?如果不是,计算八进制表达式的最佳方法是什么?

是的,你可以用 radix 再次使用 parseInt() with radix 8 and convert it to octal with Number#toString()

请看这里:Numbers and dates。八进制数的使用依赖于严格模式。

document.write((parseInt(15, 8) + parseInt(6, 8)).toString(8) + '<br>');

如果计算量大可以使用reduce,或者@Nina的回答...

var str = '15+6';
var res = str.split('+').reduce(function(a,b){
    return a + parseInt(b, 8)
}, 0).toString(8)
console.log(res) // 23

使用ES6标准:

In ECMAScript 6 Octal number is supported with by prefixing a number with "0o".

var result = 0o15 + 0o6;
document.write(result.toString(8));