数据类型转换的疑问 alert( "0abc" - 1 );alert( "0xa" - 1 );为什么第一个是NaN,第二个是9呢?在这个减法运算中,是先进行数据类型的转换,还是先进行减法运算呢?求助~~谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 第一个NaN不解释第二个0xa就是十进制中的10 减1后为9 以上基于js中的一个原则:当一个字符串用于数字环境中,它会自动地转换为一个数字.另外:+这个符号很特殊,她可以做字符串的连接符至于你要问为什么会有这么一个原则,那是js定的,不是我定的,我不知道了 第一个0abc是一个字符串,而不是八进制。第二个0xa先转为十进制的10,再减1。 字符串和数据减会转类型0abc不是js不想转,但是以0开头的是8进制,也就是说最大数字就是7,abc是十六进制中才有用了,所以无法转换,就是NaN第二个就是十六进制,0xa就是十进制的10 那既然是先转换数据类型的话为什么alert( "0abc" - 1 ); == NaN;alert( parseInt("0abc") - 1 ) == -1; 这种隐式的转换,是将字符串转换为数值么?如果是转换为数值,是parseInt()或者parseFloat()么?如果不是转换为数值,为什么对于十六禁止的字符串可以转换为数值而对于非8进制,10进制,16禁止的任意字符串都转换为NaN呢? 按照道理说ECMA提供了两种将非数字的原始值转换为数字的方法parseInt() parseFloat()这两种方法都是先判读首字符是否为数字,如果不是,该方法就返回NaN,如果是数字,则持续下去,直到完成或者发现其他非有效数字,然后返回数值。那么这种隐式的转换也应该符合这样的规则?为什么不是-1呢? 求js高手解决问题啊。我要修改控件。。 js中click事件的问题,高手求破。 文件保存问题 如何实现刷新网页时自动滚动到网面末端? window.showModalDialog 获取返回值很诡异的问题 Test.namespace("testing");什么用法? 多个邮件地址的判断怎么写?谢谢! 求一个仿照携程勾选常用旅客之后自动填充表单的解决思路和办法 代码校正。。。。帮个小忙 一个JS动态按钮 onclick问题 不熟悉jquery,麻烦高手帮助完善一个函数 通过遍历动态产生的文本框取值问题
当一个字符串用于数字环境中,它会自动地转换为一个数字.另外:+这个符号很特殊,她可以做字符串的连接符至于你要问为什么会有这么一个原则,那是js定的,不是我定的,我不知道了
第二个0xa先转为十进制的10,再减1。
0abc不是js不想转,但是以0开头的是8进制,也就是说最大数字就是7,abc是十六进制中才有用了,所以无法转换,就是NaN
第二个就是十六进制,0xa就是十进制的10
alert( "0abc" - 1 ); == NaN;
alert( parseInt("0abc") - 1 ) == -1;