①运算操作符
a. “+”
第一个作用是两个Number的数字相加
第二个作用是任何东西加字符串都等于字符串
b. - * / % = ()
// 特殊的除法
0/0
// 结果为NaN
1/0
// 结果为Infinity
0/1
// 结果为0
- * / % = ()的优先级
()的优先级最高 = 的优先级最低
备注:Infinity不可能传给后端,Infinity要先变成字符串,再传给后端,后端进行解析
c. ++ -- += -= *= /= %=
let c = c + 1; 等价于 let c += 1;
let a = 10;
let b = ++a - 1 + a++;
document.write(b + "" + a);
// 执行结果:b = 11 -1 + 11; a = 10 + 1 + 1 = 12
// ++a 是a先加 a++ 是a后加
// 小栗子
如果让let a = 123, b = 456;中的a和b互换值
a = a + b;
b = a - b;
a = a - b;
②比较运算符
> < == >= <= !=
// 小栗子
var a = 'a' > 'b';
document.write(a) // 输出为false
reason: 字符串比较的是Ascll码,其中a的的ascll码 小于b的ascll 'a' = "A" + 32 = 113 ; 'A' = 81
//根据上面的结论再来一个 小栗子
var a = '10' > '8'
document.write(a) // 输出为false
reason:先是'1' 跟'8'比较,小于,直接返回false, 否则一直比下去返回值
// 特殊规则
a = 1 == 1; 输出为true
a = undefined == undefined 输出为true
a = undefined == null 输出为true
a = Infinity == Infinity 输出为true
a = NaN == NaN 输出为false == > NaN不等于任何东西,一急眼自己都不认识
③逻辑运算符(重点)
&& || !
&& ===> 会先看&&前面的表达式转换为Boolean,如果只有两个表达式的话,第一个为false,那么直接返回第一个值的结果,否则直接返回第二个值的结果。
// 碰到假就停下返回
// 小栗子 (&& 可以当做短路来判断逻辑)
var a = 1 && 2 + 2; 输出的结果为4
var a = 0 && 2 + 2;输出的结果为0
2 > 1 && document.write('你真棒') 输出的结果是'你真棒';
|| ===> 如果只有两个表达式的话,如果第一个值是true, 那么直接返回第一个值的结果,否则返回第二个值的结果
// || 碰到真就返回
! ===> 取反 把这个东西转换为Boolean取反再取反
// 小栗子
var data = {};
var a = !! data;
document.write(a); 输出为true
5.条件语句
if ,if else
// if 和 && 的转换小栗子
if( 1 > 2) {
document.write('a');
}
等价于
1 > 2 && document.write('a');
switch case
// 根据浏览器端输入的值的不同执行不同的操作
let n = parseInt(window.prompt('input'));
switch(n) {
case 'a':
console.log('a');
break;
case 'b':
console.log('b');
break;
case 'c':
console.log('c');
}
条件语句中的continue 和 break
// continue
for(var a = 0; a < 100; a++) {
if(a % 7 === 0 || a % 10 === 7) {
continue;
}
console.log(a);
}
// for循环中如果a逢7或是7的倍数那么跳出本次循环,输出其他的小于100的数字
// break
// 判断今天输入的date是星期几
let date = parseInt(window.prompt("input"));
switch(date) {
case "monday":
case "tuesday":
case "wednesday":
case "thursday":
case "friday":
console.log("工作日");
break;
case "monday":
case "sunday":
console.log("休息日");
}
// 上述程序如果没有break,会一直走完case "sunday"