先看代码
=>写法1:
var n=10;
n=n+1;
console.log(n);
=>写法2:
var n=10;
n++;
console.log(n);
当n为数字时,上面两种写法是一样的效果,结果都是11
另一块代码
=>写法1:
var n='10';
n=n+1;
console.log(n);
=>写法2:
var n='10';
n++;
console.log(n);
当n为字符串时,’+‘表示字符串拼接,写法1结果为’101’
'++'依旧代表数学运算,写法2结果为11
类似的,看下面的if语句与switch语句,也有这样的区别
=>写法1:
var num = '10';
if(num==10) {
numn++ ;
}else if(num==5) {
num--;
} else {
num = 0;
}
console.log (num) ; =>输出11
=>写法2:
var num='10';
switch (num) {
case 10:
num++ ;
break ;
case 5:
num-- ;
break ;
default:
num = 0;
}
console.log(num) ; =>输出0
- 在switch语句中,每一种case都用’==='绝对相等来进行比较。绝对相等指的是数据的类型和值均相等
- 而if语句中的’=='比较机制是:若等号两边类型不一样,先转换为相同数据类型再比较
- 真实项目中为了保证代码的严谨性,我们应该更多使用绝对比较