在JavaScript中,当不同的数据类型之间进行运算时,为了程序可以运行就产生了隐式转换,
我们可以通过看运算结果来推理一个数据隐式转化为什么类型,NaN不能进行运算,如果运算 结果要不是NaN,要么 false
如果表达式中同时存在字符串类型和数字类型的操作数,而运算符使用加号“+”
,此时 JavaScript 会自动将数字转换成字符串。
1. 如果表达式运算符为-、*、/、%
中的任意一个,此时 JavaScript 会自动将字符串转换成数字,对无法转换为数字的则转换为 NaN
2.运算符为++
或--
时,JavaScript 会自动将字符串转换成数字,对无法转换为数字的则转换为 NaN
3.运算符为>
或<
时,当两个操作数一个为字符串,一个为数字时,JavaScript 会自动将字符串转换成数字。
4.!
运算符将其操作数转换为布尔值并取反。
5.运算符为==
时,当表达式同时包含字符串和数字时,JavaScript 会自动将字符串转换成数字
6.当其他类型转number时,parseInt()将其他类型转化为数值型的整数
规则:除了字符串 其他都是NaN
parseFloat()将其他类型转化为数值型小数
基本类型数据之间的相互转换只转一次
引用类型转基本类型转两次 先变字符串 再转其他
7.当其他类型转boolean时,在比较运算符或者个别情况运算符的情况下,会转化为布尔类型
8.当其他类型转string时,其他类型遇到连接符,自动转为字符串;对象和数组和其他类型数据进行运算的时候
附录(1)