关于parseInt <script language="javascript">alert(parseInt("010",10)); //10alert(parseInt(010,10)); //8alert(parseInt(010.toString(),10)); //8alert(parseInt(""+010,10)); //8</script>why?一个表单控件的值是010,用parseInt转换后总是8。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 第一个参数必须是字符串,试试parseInt( String(010), 10 ); alert(010); //8alert(""+010); //8系统自动进行转换的结果 parseInt(string, [radix])第一个参数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( String(010), 10 ); 我试过了,是8。 alert(parseInt("010",10)); 因为parseInt第一个参数要求是字符串,所以按照10进制来转换,结果是10alert(parseInt(010,10)); //8第一个参数不是字符串,所以自动转换,0开头按8进制转换,相当于parseInt("8",10))alert(parseInt(010.toString(),10)); //8同2alert(parseInt(""+010,10)); //8同2parseInt( String(010), 10 ); 同2,其实就是第一个参数非字符串时自动调用的方法,String()对null和undefined也有效 010.toString()后不是变成字符串?""+010之后不是变成字符串?变成字符串后就作为parseInt第一个参数。 010.toString(),先把010变成10进制8,再变成"8"字符串 010.toString()到底是10进制的8,还是8进制的8 ??? 为什么我日期控件还是不能显示中文? 请教:如何判断一个页面中多个textbox,哪个获得了焦点?? flash 反复播放咋整???在线!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 发布一个Javascript框架系统 怎样让 <frameset> <frame> disabled 或者block 如何计算url的值????? Object的SRC怎么取不到? 问一个简单的问题 解决马上给分 浏览器工具栏中的打印按纽 正则表达式 去除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第一个参数。