js中的运算权重。括号运算 > 普通运算 > 赋值
+ - * /
- 加法运算 +,
- 包含数字的数学运算,
- 字符串拼接,字符串加任何数据类型都转换为字符串
- 除法运算 /
- c = 0 / 0, c为NaN
- 0 / 0 // NaN not a number,
- 1 / 0 // infinity
- -1 / 0 // -infinity
- 取模运算:%
- 乘法运算:*
交换值的问题
1 2 3 4 5
| var a = 3, b = 4; a = a + b; b = a - b; a = a - b;
|
>
++ –
1 2 3 4
| var a = 5, b; b = --a + a++; console.log(a, b);
|
运算符在前面加减再运算,在后面相反,先运算,再加减
比较运算符
>
、<
、<=
、>=
、==
、===
、!=
、 !==
数字类型的值直接比较,如果是字符串类型,先转换为字符串相对应的ASCII码(字符相对应的十进制代码),多个字符的,从左到右一次对比,直到比较出ASCII码的大小为止
1 2 3 4 5
| number - number number - string string -> number var bool = '3' > 2 var bool = 3 > 2; var bool = '4.5' > 'a';
|
- ==不判断数据类型
- ===会严格区分数据类型
- !=与==类似,不判断数据类型
- !== 区分数据类型
语句
if语句
当if语句要考虑,互斥性,如果每一个条件都是互斥的,使用else if
1 2 3 4 5 6 7 8 9 10 11 12 13
|
var score = 78; if (score <= 100 && score >=90) { console.log('你的成绩为A'); } else if (score >=70 && score < 90) { console.log('你的成绩为B'); } else if (score >= 0 && score < 70) { console.log('你的成绩为C'); } else { console.log('你的成绩计算出现异常!'); }
|
Switch case 语句
适合判断一个定值,并且当条件有三个或以上时,更加直观
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| var city = window.prompt('输入你的城市!')
switch (city) { case '北京': console.log('19K'); break; case '广州': console.log('15K'); break; case '深圳': console.log('17K'); break; default: console.log('10K'); }
|
错误
- SyntaxError语法错误,代码不执行
- ReferenceError,在作用域中找不到变量,报引用错误,前面的代码可以执行
- TypeError,作用域判别成功了,但是对结果的操作是非法或不合理的
逻辑运算
与&& 或|| 非!
undefined 、 null 、NaN 、’ ‘ 、0、false是假,其他的都是真,例如1是真,2其实也是真
1 2 3 4
| var a = 1 && 2; 与运算,遇到真就继续往后走,直到遇到假,或者走到最后就返回当前值 var b = 0 || null || 1 || 0; 或运算,遇到假继续往后走,直到遇到真,或者走到最后就返回当前值
|