<script language="javascript">
alert(parseInt("010",10)); //10
alert(parseInt(010,10)); //8
alert(parseInt(010.toString(),10)); //8
alert(parseInt(""+010,10)); //8
</script>
why?一个表单控件的值是010,用parseInt转换后总是8。
解决方案 »
- 我怎么取得这里每一个a 里面的文字?
- 地址栏输入: tencent://message/?uin=664326375 会弹出一个qq对话框和一个网页,如何把网页去掉
- 【分享】:水平滚动条代码!!
- js中如何在自动生成的节点里动态添加事件?
- 使用innerHTML生成内容时,部分标记无法设置。
- 脚本如何实现点击表格某行就将内容复制到文本框中?
- 那位高手能帮我用脚本实现这样的功能
- 关于loading的问题
- 如何实现 指定文件夹里的文件向另一指定文件夹的定时自动拷贝 功能??
- 招网页设计师, http://www.pricenew.com/Eprice/joinfree.asp (深圳福田)招兼职合作
- 正则表达式 去除script脚本
- 请大家帮忙解下js,直接用别人js页面正常,将js下载来用,页面出错
parseInt( String(010), 10 );
alert(""+010); //8
系统自动进行转换的结果
第一个参数string类型 表示要被解析的字符串
第二个参数 可选的,表示要解析的数字的基数。该值介于 2 ~ 36 之间。如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。
当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。举例,如果 string 以 "0x" 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。
因为parseInt第一个参数要求是字符串,所以按照10进制来转换,结果是10
alert(parseInt(010,10)); //8
第一个参数不是字符串,所以自动转换,0开头按8进制转换,相当于parseInt("8",10))
alert(parseInt(010.toString(),10)); //8
同2
alert(parseInt(""+010,10)); //8
同2
parseInt( String(010), 10 );
同2,其实就是第一个参数非字符串时自动调用的方法,String()对null和undefined也有效
""+010之后不是变成字符串?
变成字符串后就作为parseInt第一个参数。