Javascript 函数传递参数

Javascript 函数传递参数,javascript,Javascript,下面是一个小JavaScript。我从函数中得到了意想不到的结果。020*2给出的是32而不是40。有人知道如何解决这个问题吗 函数myFunction(a,b){ 返回a*b; } 文件写入('04*03='); 编写(myFunction(04,03))//结果12,对吗 文件。写入(“ 020八进制=>16十进制 02八进制=>2十进制 16*2=32 例子 将八进制值转换为以8为基数(八进制)的字符串,然后以10为基数(十进制)对其进行解析 var x=020;//16(八进制)

下面是一个小JavaScript。我从函数中得到了意想不到的结果。020*2给出的是32而不是40。有人知道如何解决这个问题吗

函数myFunction(a,b){
返回a*b;
}
文件写入('04*03=');
编写(myFunction(04,03))//结果12,对吗
文件。写入(“
  • 020八进制=>16十进制
  • 02八进制=>2十进制
16*2=32


例子 将八进制值转换为以8为基数(八进制)的字符串,然后以10为基数(十进制)对其进行解析

var x=020;//16(八进制)
变量y=02;//2(八进制)
document.body.innerHTML=x+'x'+y+'='+x*y;//32
document.body.innerHTML+='
';/{Separator} var x2=parseInt(x.toString(8),10);//20(十进制) var y2=parseInt(y.toString(8),10);//2(十进制)
document.body.innerHTML+=x2+'x'+y2+'='+x2*y2;//40
如注释中所述,在数字前加一个零将使其类型从十进制(1-10)更改为八进制(1-8)。要使数字保持十进制,请删除前导零

以下是您的代码和此建议:

function myFunction(a, b) {
    return a * b;
}

document.write('04 * 03 = ');
document.write(myFunction(4, 3));     //Result 12, correct
document.write('  <<  Correct <br/>20 * 2 = ');
document.write(myFunction(20, 2));     //Result 40, correct
document.write('  <<  Correct ')
函数myFunction(a,b){
返回a*b;
}
文件写入('04*03=');
document.write(myFunction(4,3));//结果12,正确

document.write('020是八进制20,也就是16。这是因为以0开头的数字被视为八进制:@Jonathan.Brink以零开头的任何数字,其中没有任何8或9。
08==8
@JuanMendes感谢您的澄清这是为了什么?八进制将提供什么用途?
08==010//true!
@KJPrice 08 i它不是八进制。它被视为十进制。它与十六进制的用法相同:)