1. 程式人生 > >js數值型遇0開始自動轉換為8進制

js數值型遇0開始自動轉換為8進制

沒有 log 今天 ret gpo rip 16進制 deb bug

  如題,今天在項目更新時發現了js的這個自動轉換問題,代碼如下:

var num = 0110;

render:function(num){
var html="<a href=\"javascript:viewAccountInfo(‘<%=path%>‘,"+num+")\">"+num+"</a>";
return html;
}

  在上面做了個超鏈接,把指定的數綁定到了 viewAccountInfo 方法上,之前運行一直沒有問題,直到

今天上午出現了以0打頭的數值,原本應傳 0110 去後臺,但是後臺卻一直報錯提示找不到指定的索引,

前臺alert一下發現彈出的竟然是156,,然後開始對比數據庫,debug,跑流程,確定了後臺數據沒有問題。

心如死灰之下把 0110 改為 1110 後問題竟然好了,立馬以此為突破口百度一下,果然,js在數值傳遞過程

中會對0打頭或0X打頭做自動轉換出理,以0打頭會被轉換成8進制(即156),以0X打頭會被出理成16進制。

知道問題後就好辦了,直接改為字符串形式如下:

var html="<a href=\"javascript:viewAccountInfo(‘<%=path%>‘,‘"+num+"‘)\">"+num+"</a>";

有看出變化在哪裏嗎O(∩_∩)O哈!,只是在num的雙引號外加了一套單引號 ‘ ‘。就是這麽簡單。

js數值型遇0開始自動轉換為8進制