js运算符
算数运算符:
+(加法)、-(减法)、*(乘法)、/(除法)、%取模(余数)、++(自增)、--(自减)
res = n1++; 先将n1的值赋值给res,自己再自增1
res = ++n1; 先自己自增1, 再将n1的值赋值给res
++在前优先级最高,++在后优先级最低(比赋值符=还低)
赋值运算符:
前提:x=5,y=5
| 运算符 | 例子 | 等同于 | 运算结果 |
| :----- | :--- | ------ | -------- |
| = | x=y | | 5 |
| += | x+=y | x=x+y | 10 |
| -= | x-=y | x=x-y | 0 |
| *= | x*=y | x=x*y | 25 |
| /= | x/=y | x=x/y | 1 |
| % | x%=y | x=x%y | 0 |
比较运算符:
前提:x=5
| 运算符 | 描述 | 比较 | 结果 |
| ------ | ---------- | ------- | ----- |
| == | 等于 | x=="5" | true |
| === | 绝对等于 | x==="5" | false |
| != | 不等于 | x!="5" | fales |
| !== | 不绝对等于 | x!=="5" | true |
| > | 大于 | x>5 | false |
| < | 小于 | x<5 | false |
| >= | 大于等于 | x>=5 | true |
| <= | 小于等于 | x<=5 | true |
逻辑运算符:
前提:n=5
| 运算符 | 描述 | 例子 | 结果 |
| ------ | ---- | ------------- | ------------------- |
| && | 与 | x=n>10&&++n | x=false,n=5(短路) |
| \|\| | 或 | x=n<10\|\|n-- | x=true,n=5(短路) |
| ! | 非 | x=!n | x=false,x=5 |
三目运算符:
条件 ? 结果1 : 结果2
res = 10 == '10' ? '相等' : '不等';
console.log(res);
js流程控制
if判断:
if (条件表达式) {
代码块;
}
==================================
if (表达式1) {
代码块1;
} else {
代码块2;
}
==================================
if (表达式1) {
} else if (表达式2) {
}
...
else if (表达式2) {
} else {
}
=================================
if (表达式1) {
if (表达式2) {
}
}
================================
while、for循环:
for (循环变量①; 条件表达式②; 循环变量增量③) {
代码块④;
}
for循环执行的顺序:① ②④③ ... ②④③ ②,入口为①,出口为②,②④③就是循环过程
案例:
for (var i = 0; i < 5; i++) {
console.log(i);
}
==================================
while (条件表达式) {
代码块;
}
================================
do { 代码块;
} while (条件);
先执行代码块,在执行条件
===============================
for…in迭代器:
var arr = [1, 2, 3, 4, 5]
for (num in arr) {
console.log(num);
}
结果:0,1,2,3,4,
随机数推导过程:
随机数 [0, 1) => [m, n]
[0, 1) * 11 => [0, 11) parseInt() => [0, 10] + 5 => [5, 15]
[0, 1) * (n - m + 1) => [0, n - m + 1) parseInt() => [0, n - m] + m => [m, n]
公式:parseInt(Math.random() * (max - min + 1)) + min
案例:let num = parseInt(Math.random() * (40 - 10 + 1)) + 10;
console.log(num);