04运算、判断、条件
判断语句、条件语句、错误捕捉语句以及关键字
# 1、运算符 (opens new window)
= 赋值
== 判断大小
=== 全等于,不仅判断大小,还判断类型
! 非
!= 不等于
!== 不全等于
&& 与
|| 或
>= 大于等于
<= 小于等于
a++ 累加1,a++相当于a = a + 1,先得出值,再运算
++a 累加1,++a相当于a = a + 1,先运算,再得出值
a+= 累加自身,a+=2相当于a = a + 2
-- 累减1
-= 累减自身
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# avaScript 赋值运算符
{% spoiler 点击显/隐内容 %}
赋值运算符向 JavaScript 变量赋值。
| 运算符 | 例子 | 等同于 |
|---|---|---|
| = | x = y | x = y |
| += | x += y | x = x + y |
| -= | x -= y | x = x - y |
| *= | x *= y | x = x * y |
| /= | x /= y | x = x / y |
| %= | x %= y | x = x % y |
{% endspoiler %}
加法赋值运算符**(+=)向变量添加**一个值。
# 赋值
//全写法(老实人写法)
d = d + 1;
//简写法(累加)
var d = 1
d += 4;
console.log(d); //5
//简写法(累减)
var d = 1
d -= 1;
console.log(d); //0
2
3
4
5
6
7
8
9
10
11
12
var d = 8
d += 4;
document.write(d);//12 =8+4
var d = 8
d -= 4;
document.write(d);//4 =8-4
2
3
4
5
6
7
# 逻辑【与】
表达式1 && 表达2
// 如果表达式1为真,则返回表达式2
// 如果表达式1为假,则返回表达式1
console.log(100 && 200);//true 200
console.log(0 && 200);//false 0
// 两边都是true才会返回true,否则返回错误false
//你也有爱我也有爱,咋们迟早都要做爱
var b1 = true && true; //true
var b1 = true && false; //false
2
3
4
5
6
7
8
9
10
# 逻辑【或】
表达式1 || 表达式2
// 如果表达式1为真,则返回表达式1
// 如果表达式1为假,则返回表达式2
console.log(100 || 200);//true 100
console.log(0 || 200);//false 200
// 只要其中一边是true正确,就会返回true正确,
// 两边都是false错误,才返回false错误
// 我也有爱 或者 你没有爱,我迟早会把你追到手
var b2 = true || true; //true
var b2 = true || false; //true
var b2 = false || false; //false
2
3
4
5
6
7
8
9
10
11
12
# 逻辑【非】
**!**表达1
// 如果表达1是真的,那么返回假(false);
// 如果表达1是假的,那么返回真(true);
console.log(!0);//true
console.log(!22);//false
// true正确会变成false错误的,
// false错误的会变成true正确的
// 你不要爱 我就全都要 ,包裹你的心我也要
var b3 = false;
console.log(!b3);//true
console.log(b3);//false
var b4 = true;
console.log(!b4);//false
console.log(b4);//true
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 好多【===】
// 1= 赋值
// 2==判断是否等于 只判断值,不判断类型 ————你发两倍工资给我,那我就做一件事咯
// 3=== 全等于 即判断,又判断类型 ————你发三倍工资给我,那我就全都做咯
// != 不等于 ————我还在考虑一下
//!== 完全不等于 ————那就真的不要了
// 2==判断是否等于 只判断值,不判断类型
var b5 = 1 == '1';
console.log(b5); //true
// 3=== 全等于 即判断,又判断类型
var b5 = 1 === '1';
console.log(b5); //false
//!== 完全不等于
var b5 = 1 !== '1';
console.log(b5); //false
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 好多【++--】
加加在后 先计算,后自增1 a++ ……本身
加加在前 先自身加1,后计算 ++a ……本身加1
var a = 100;
console.log(a++); //100
2
var a = 100;
console.log(++a); //101
2
var a = 100;
document.write(--a); //99
2
var a = 100;
document.write(a--); //100
2
# 更多【++ --】
{% spoiler 点击显/隐内容 %}
加加在后 先计算,后自增1 a++ ……相当于本身自己的职位
加加在前 先自身加1,后计算 ++a ……相当于本身就有1,就自己到哪都加一块钱
减减在后 a-- ……相当于本身自己的职位
减减在前 先自身减1,后计算 --a ……相当于本身自己减1,就自己到哪都缺一块钱
{% endspoiler %}
var a = 1;
var b = 100;
console.log(a++ + b++); //101
console.log(--a + b++); //100
console.log(a-- + --b); //100
var a = 8;
var b = 6;
console.log(a++ - b++); //2
console.log(--a - b++); //1
console.log(a-- - --b); //3
2
3
4
5
6
7
8
9
10
11
# 2、判断条件 (opens new window)
# 判断语句【if(){}】
{% spoiler 点击显/隐内容 %}
如果 肚子饿
我就去吃饭
if(肚子饿){
我就去吃饭
}
{% endspoiler %}
//true=去 、 false=不去
var hungry = true;
if(hungry){
document.write("我就去吃饭");
}
//案例 var = let
let a = 1
if(a === 1){
console.log("a是1")
}
2
3
4
5
6
7
8
9
10
11
# 判断语句【if(){}else{}】
{% spoiler 点击显/隐内容 %}
$$ 如果 今天下雨
我就开车去上班
否则
我就走路去上班 $$
if(今天下雨){
我就开车去上班
}
else{
我就走路去上班
}
{% endspoiler %}
var rainy = true;
if(rainy){
document.write("我就开车去上班"); //true
}
else{
document.write("我就走路去上班"); //false
}
//案例1
var name = '张三';
if (name === '张三') {
document.write('他叫' + name);//他叫张三666
document.write('666');
}
else {
document.write('他叫李四');
}
//案例2
let a = 1
if(a === 1){
console.log("a是1")
}else{
console.log("a不是1")
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 判断语句【if(){}else if(){}else{}】
{% spoiler 点击显/隐内容 %}
$$ 如果 你考100分
我给你1000元
或是如果 你考80以上
我给你500元
或是如果 你考60以上
我给你100元
否侧
你给我300元 $$
if(如果){
我给你1000元
}
else if(或是如果){
我给你500元
}
else否则{
你给我300元
}
{% endspoiler %}
var score = 100;
if(score==100){
document.write("我给你1000元");
}
else if(score>=80){
document.write("我给你500元");
}
else if(score>=60){
document.write("我给你100元");
}
else{
document.write("你给我300元");
}
//案例1
var a = 5;
if (a === 1) {
document.write("我是第一个");
}
else if (a === 2) {
document.write("我是第二个");
} else {
document.write("我是第三个");
}
//案例2
var a = prompt("请输入你的的成绩")
var b = Number(a);
if (b >= 90) {
console.log("2楼嫩模");
} else if (b >= 70 && b < 90) {
console.log("赠送搓衣板一块");
} else if (b >= 60 && b < 70) {
console.log("厕所一日游");
}
else {
console.log("爬....");
}
//案例2的简易
var a = prompt("请你输入1-100数字")
var b = Number(a);
if (b == 100) {
document.write("我是大了");
}
else if (b >= 70) {
document.write("我是中的");
}
else if (b >= 60) {
document.write("我是底的");
}
else {
document.write("我是你们心中的");
}
//案例3
let a = 1
if(a === 1){
console.log("a是1")
}else if(a===2){
console.log("a是2")
}else{
console.log("a不是1也不是2")
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# 三元运算
var a = "女人"
a === "男人" ?
console.log("去男厕") :
a === "女人" ?
console.log("去女厕") :
console.log("就地解决")
//案例弹出框的那种
var b = prompt("1-100");
var a = Number(b);
a >= 100 ?
document.write("我是100..") :
a >= 70 ?
document.write("我是99-70") :
a >= 60 ?
document.write("我是69-60") :
document.write("你猜")
//案例
var a = "阿丽塔";
a === "阿丽塔" ?
document.write("阿丽塔好美") :
a === "阿凡达" ?
document.write("阿凡达好帅") :
document.write("啥也不是")
//案例
a === 1 ? console.log("a是1") : console.log("不是1")
a === 1 ? console.log("a是1") : a===2 ? console.log("a是2") : console.log("a不是1也不是2")
a === 1 ? console.log("a是1") : null
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 判断语句 (opens new window)switch
var a = prompt("请输入内容");
switch (a * 1) {
case 1:
console.log("苹果");
break;
case 2:
console.log("雪梨");
break;
case 3:
console.log("我是水果哦!");
break;
}
let a = 1
switch (a){
case 1:
console.log("a是1")
break;
case 2:
console.log("a是2")
break;
default:
console.log("a不是1也不是2")
break;
}
//如果要在switch case里面返回值,需要把break改为return
function fn() {
let a = 1;
switch (a) {
case 1: {
console.log("a是1");
return;
}
case 2:
console.log("a是2");
break;
default:
console.log("a不是1也不是2");
break;
}
}
fn()
//案例星期的
<p id="demo"> </p>
var day;
switch (new Date().getDay()) {
case 0:
day = "周日";
break;
case 1:
day = "周一";
break;
case 2:
day = "周二";
break;
case 3:
day = "周三";
break;
case 4:
day = "周四";
break;
case 5:
day = "周五";
break;
case 6:
day = "周六";
}
document.getElementById("demo").innerHTML = "今天是" + day;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# 语句案例
偶数
for (var i = 0; i <= 100; i++) {
if (i % 2 == 0) {
console.log(i);
}
}
2
3
4
5
奇数
//第一种
for (var i = 0; i <= 100; i++) {
if (i % 2 != 0) {
console.log(i);
}
}
//第二种
var i = 0;
while (i <= 10) {
if (i % 2 != 0) {
document.write(i + "<br>");
}
i++
}
//第三种
var i = 0;
do {
if (i % 2 != 0) {
document.write(i);
}
i++
} while (i < 10);
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
用for循环输出1、3、4、5、6、8、9 【0,2,7】
for (var i = 0; i < 10; i++) {
if (i == 0 || i == 2 || i == 7) {
continue;//读取了,就跳过本次操作
}
console.log(i);
}
2
3
4
5
6
# 3、循环语句 (opens new window)
# 不同类型的循环
JavaScript 支持不同类型的循环:
- for - 多次遍历代码块
- for/in - 遍历对象属性
- while - 当指定条件为 true 时循环一段代码块
- do/while - 当指定条件为 true 时循环一段代码块
# for(){}
# for 循环的语法如下
for (语句 1; 语句 2; 语句 3) {
要执行的代码块
}
var text = "";
var i;
for (i = 0; i < 5; i++) {
text += "数字是 " + i + "<br>";
}
document.getElementById("demo").innerHTML = text;
2
3
4
5
6
7
8
9
10
语句 1 在循环(代码块)开始之前执行。
- 在循环开始之前设置了一个变量(var i = 0)
语句 2 定义运行循环(代码块)的条件。
- 定义运行循环的条件(i 必须小于 5)
语句 3 会在循环(代码块)每次被执行后执行。
- 会在代码块每次执行之后对值进行递增**(i++)**
//1-10
for(let i = 1;i<=10;i++){
console.log(i)
}
//10-1
for(let i = 10;i>=1;i--){
console.log(i)
}
//99乘法表
document.write('<table border="1" cellspacing="0" cellpadding="10">');
for (let i = 1; i <= 9; i++) {
document.write("<tr>");
for (let j = 1; j <= i; j++) {
document.write("<td>");
document.write(i + "*" + j + "=" + i * j);
document.write("</td>");
}
document.write("</tr>");
}
document.write("</table>");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# for(in){}
//循环数组
let arr = [1, 2, 3, 4, 5];
for (let i in arr) {
console.log(arr[i]);
}
//循环对象
let obj = { name: "小明", age: 18, sex: "男" };
for (key in obj) {
console.log(obj[key]);
}
2
3
4
5
6
7
8
9
10
11
12
13
# while(){}
let i = 1;
while (i <= 10) {
console.log(i);
i++;
}
2
3
4
5
# do()while(){}
let i = 1;
do {
console.log(i)
i++
} while (i<=10);
2
3
4
5
# 4、错误捕捉语句
# try catch
try {
let a = 1;
console.log(a);//成功
} catch (error) {
console.log(error);//失败,错误对象
}
2
3
4
5
6
# finally 最终,不管成功还是失败都执行
try {
let a = 1;
console.log(a);
} catch (error) {
console.log(error);
} finally {
console.log("不管成功还是失败,都执行");
}
2
3
4
5
6
7
8
# throw
try {
console.log(a);
} catch (error) {
if(error.name === "ReferenceError"){
throw "这是一个引用错误"
}
} finally {
console.log("不管成功还是失败,都执行");
}
2
3
4
5
6
7
8
9