尝试在JavaScript中执行以下操作:
parseInt('01'); //equals 1
parseInt('02'); //equals 2
parseInt('03'); //equals 3
parseInt('04'); //equals 4
parseInt('05'); //equals 5
parseInt('06'); //equals 6
parseInt('07'); //equals 7
parseInt('08'); //equals 0 !!
parseInt('09'); //equals 0 !!
Run Code Online (Sandbox Code Playgroud)
我刚刚学会了JavaScript认为前导零指示八进制整数的困难方式,并且由于没有"8"或"9"在base-8中,该函数返回零.无论喜欢与否,这都是设计的.
解决方法有哪些?
注意:为了完整起见,我即将发布解决方案,但这是我讨厌的解决方案,所以请发布其他/更好的答案.
更新:
我正在尝试将req.params转换为Number,因为这是我在我的架构中为年份参数定义的.
我试过了
req.params.year = parseInt( req.params.year, 10 );
Run Code Online (Sandbox Code Playgroud)
和
Number( req.params.year);
Run Code Online (Sandbox Code Playgroud)
和
1*req.params.year;
Run Code Online (Sandbox Code Playgroud)
但他们没有工作.我需要安装一些东西吗?
我的代码只是纯粹连接它们,我希望它添加它们.
<FORM NAME="Calc">
<TR>
<TD>
Number 1 <INPUT TYPE="text" NAME="n1" Size="16">
Number 2 <INPUT TYPE="text" NAME="n2" Size="16">
Answer<INPUT TYPE="text" NAME="ans" Size="16">
<br>
</TD>
</TR>
<TR>
<TD>
<INPUT TYPE="button" NAME="one" VALUE=" + " OnClick="Calc.ans.value = eval(Calc.n1.value + Calc.n2.value)">
Run Code Online (Sandbox Code Playgroud)