1. 操作符
-
算术操作符
+ += - -= * *= / /= % %=
-
赋值操作符
var result = 1 + 2;
result += 3;
=等价于=>
result = result + 3;
将1+2这个表达式的运算结果赋值给result -
一元运算符
++ 自增 -- 自减 前置:先自增、减再参与其他运算 后置:先参与其他运算,再自增、自减 var a = 3; var b = 1; var result = ++a+b++; ++a; // a = 4; a+b // result 5; b++ // b = 2; + var a =3 ; +a; 将其他数据类型转换为数字类型 +true //1 +'11' //11 - -a; 将其他数据类型转换为数字类型 -(-true) //1 -(-'11') //11
-
逻辑运算符
短路运算符【返回结果不一定是boolean】 && 当第一个表达式为假的时候,不再计算第二个表达式,结果由第一个表达式来决定,因此会返回第一个表达式的运算结果 var age = 12; gender = "male" age>18 && gender == 'male' // false "hello" && 1 //1 || 当第一个表达式为真的时候,整个表达式的结果就为真,不再计算第二个表达式。返回第一个表达式 null || "hello" //"hello" ! !false // true !true // false !3 // false 将其他数据类型转换为boolean !!3 // true
-
比较运算符(比较栈区的值)【返回类型为Boolean】
== != 比较值 '11' == 11 // true 比较对象的时候比较的是对象的引用 === !== 先比较数据类型,如果数据类型不一致,会直接返回false,如果数据类型一致,再比较值 '11' === 11 // false > >= < <=
-
三目运算符
exp1 ? exp2 : exp3
当exp1为真,返回exp2,否则返回exp3var result = age > 18 ? "成年人" : "未成年人" ==> var result; if(age > 18){ result = "成年人"; } else { result = "未成年人" }
-
(简单了解)位运算符(number,先将number转换二进制再运算)
异或 ^
位与 &
位或 |
&& 与 & 的区别? -
拼接运算符
当使用 “+”
其他数据类型转换为boolean
!!v
Boolean(v)
其他数据类型转换为string
v+""
String(v);
v.toString(); //null与undefined除外
其他数据类型转换为number
+v,操作数中出现了字符串,那么就肯定是拼接运算
2. 类型转换
null undefined "" 0 NaN
boolean false false false false false
string 'null' 'undefined' '' '0'
number
转换方式:
-(-v)
Number();
parseInt();
parseFloat();
解析字符串为整数int、是浮点数float
自动装箱
int a = 13;
3. 流程控制语句
-
分支语句
if(w == '下雨'){ console.log("带伞出门"); } if(age > 18){ console.log("成年人"); } else { console.log("未成年人"); } var day = 1; if(day == 1){ console.log("周一"); } else if (day == 2){ console.log("周二"); } else if (day == 3){ console.log("周三"); } else if(day == 4){ console.log("周四"); } else { console.log("周末"); } switch(day){ case 1: console.log("周一"); break; case 2: console.log("周二"); break; ... default: console.log("周末"); } 作业:(使用if-else / 使用switch-case) 根据变量day的值,打印对应内容 1 今天是周一 2 今天是周二 ... 6,7 今天是周末 if( exp1 ){ exp2 } 当exp1为真的时候,执行exp2 if(exp1){ exp2 } else if(exp3){ exp4 } else { exp5 } 当exp1为真,执行exp2,否则如果exp3为真执行exp4,否则z执行exp5 var day = 1; switch(day){ case 常量1: // 代码1 break; case 常量2: // 代码2 break; ... default: // 代码d } day === 常量1 ,如果为真,执行代码1,当遇到break,跳出switch代码块,结束运行;如果为假,继续判断 day===常量2,
-
循环语句
三要素:初始化条件,结束判定条件,迭代1. for循环语句 for(初始化条件; 结束判定条件; 迭代){ 循环体 } 计算出1到100累加的和 1+2+3+4+...+100 初始化 i = 1; 结束判定 i<=100 迭代 i++ var result = 0; for(var i=1; i<=100; i++){ result += i; } var i = 1; i <= 100; true result = 0 + 1; result = 1; i++ i = 2; i<=100 true result = 1 + 2 result = 3; i++ i = 3; i<=100 true result = 3 + 3 result 6 i++ i = 4 ... i++ i = 100 i<=100 true result = x + 100 result i++ i = 101 i<=100 false 结束循环
表达式 = 操作符 + 操作数