js自动类型转换

时间:2024-05-20 13:58:04

当运算符作用在错误类型的值上时,js自动将其转换为自己期望的类型,称为强制类型转换。

js自动类型转换

第一个表达式中的null变成了0。

第二个表达式中的“5”变成了5,把字符串转换成了数字。

第三个表达式中,运算符“+”进行字符串拼接,将1转化为“1”,把数字转换成了字符串。

第四个表达式中,有些值无法转换为数字,比如“five"和undefined,所以会产生NaN。而且包含NaN的运算结果仍然是NaN。

第五个表达式中,当相同类型的值使用”==“符号进行比较时,两个值相同时返回true。如果类型不同,js就会将其中一个值转换为另一个值的类型。

在绝大多数情况下,js只是将其中的一个值转换为另一个值的类型,但是如果运算符两侧都存在null或undefined,那么只有两侧均为null或undefined时结果才为true。

当我们想确定一个值是否为真,而非null或undefined时,直接使用”==“或”!=“来比较就可以。当想要测试一个值是否严格等于false时,字符串和数字的布尔类型转换规则是:js会将0,NaN和空字符串”“视为false,其他值视为true。比如0==false和”“==false之类的表达式都是true。如果不希望在比较的时候进行任何自动类型转换,可以使用===和!==。===用于检测两个值是否严格相等,!==用于测试是否严格不等。比如”“===false的结果是false。