很多考试都会考察类型的转换,这里做一个阶段性总结。
一.==和===
区别:==是相等判断,并不严格,如若两个操作符不是同一类型,会进行类型转换;
对==
1.null==undefined //true
2. 一个字符,一个数字,统一转换成数字在比较
3.如果一个是true,先转成1,如果一个是false,先转成0.在比较
4.如果是对象,调用valueOf,toString,对于指向不同对象的引用,结果为false
对===
1.如果两个值类型不相同,则他们不相等
2.如果两个是null和undefined,则不相等
3.不同引用对象不等
二.对于数字和字符串操作来说,加号运算符更偏爱字符串,如果两个操作数一个为数字一个为字符的话,则进行字符连接,比较运算符更倾向于数字,只有两个操作数都是字符时,进行字符串的比较。
console.log('1'+1);//'11'
console.log('1'-1)//0
console.log('a'-1)//NaN
console.log('1'==1)//true
console.log('1'===1)//false
console.log('1'<2)//true
console.log('3'*'1')//3
console.log('1'+1);
console.log('1'+1);
console.log('1'+1);
console.log('1'+1);