1、会发生数字类型转化你的情况:
//(1)、使用isNaN检测的时候:当检测的值不是数字类型,浏览器会自己调用
//Number 方法把它先转换为数字,然后再检测是否为有效数字;
isNaN(‘3’) // F
// 实际浏览器帮我们做的
Number(‘3’) // 3
isNaN(3) // T
//(2)、基于parseInt / parseFloat / Number 去手动转换为数字类型;
// (3)、数学运算: + - * / % , 但是 + 不仅仅是数学运算,还可能是字符串拼接;
‘3’ - 1 // 2
Number(‘3’) // 3 (浏览器会默认调用 Number方法先把其他类型值转换为数字)
3 - 1 = 2
‘3px’ + 1 //‘3px1’ 这是触发了字符串拼接规则
var i =‘3’;
i = i + 1; // ‘31’
i += 1; // ‘31’
i++; // 4 ++的运算法则已经摒弃了字符串拼接规则,所以是数学运算;
// (4)在基于 == 比较的时候,有时候也会把其他值转换为数字类型;
2、总结
发生自动转换浏览器自动转换调用的都是数字的 Number方法;
网友评论