请看如下代码:
1 | var x = 'The answer is ' + 42; |
巧用+/-规则转换类型
- 如果想把一个string转换为number类型,可以通过减去0,比如:
1 | var str = "43434"; |
如果想把一个变量转换为字符串类型,只需要把这个变量加上一个空字符,比如:
1 | var num = 6353355; |
==
非严格相等比较
类型相同:比较两边的内容和长度必须是完全一样时才会返回true,否则为false
类型不同:尝试(隐式)类型转换然后再做比较
1 | number == string // 转number 1 == ‘1.0’ true |
- 如果是字符串和数字比较,会把字符串转为数字
===
严格相等比较
1 | Array.prototype.indexOf // 返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1 |
类型不同:先判断两边的类型,如果类型不同,直接返回false,
类型相同:比较两边的内容和长度必须是完全一样时才会返回true,否则为false
但是需要考虑如下情况:
1 | null === null; // true |