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


  如題,今天在項目更新時發現了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的雙引號外加了一套單引號 ' '。就是這么簡單。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM