JavaScript学习笔记(六)

Posted by Ivens on November 5, 2019

一.JavaScript逻辑

JavaScript 提供一种布尔数据类型。它只接受值 true 或 false。

注意:所有具有“真实”值的即为 True,如:

1
2
3
4
5
6
7
8
9
10
11
12
13
100

3.14

-15

"Hello"

"false"

7 + 1 + 3.14

5 < 6 

所有不具有“真实”值的即为 False

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
26
27
// 0 (零)的布尔值为 false:
var x = 0;
Boolean(x);       // 返回 false

// -0 (负零)的布尔值为 false:
var x = -0;
Boolean(x);       // 返回 false

// ""(空值)的布尔值为 false:
var x = "";
Boolean(x);       // 返回 false

// undefined 的布尔值是 false:
var x;
Boolean(x);       // 返回 false

// null 的布尔值是 false:
var x = null;
Boolean(x);       // 返回 false

// false 的布尔值(正如您猜到的)是 false:
var x = false;
Boolean(x);       // 返回 false

// NaN 的布尔值是 false:
var x = 10 / "H";
Boolean(x);       // 返回 false

布尔可以是对象,不要创建布尔对象。它会拖慢执行速度。


二.比较和逻辑运算符

注意:

”==”是指数值相等,”!==”是指值不相等或类型不相等.这两个不是对立的.真正对立的形式应该是!(x==y)

1
2
3
    x=5;
    x=="5";       //返回true
    x!=="5"     //返回为ture

条件(三元)运算符

1
var voteable = (age < 18) ? "太年轻":"足够成熟";

三. Switch 语句

语法

1
2
3
4
5
6
7
8
9
10
switch(表达式) {
     case n:
        // 代码块
        break;
     case n:
        // 代码块
        break;
     default:
        // 默认代码块
} 

break 能够节省大量执行时间,因为它会“忽略” switch 代码块中的其他代码的执行。

default 关键词规定不存在 case 匹配时所运行的代码

共享代码块

1
2
3
4
5
6
7
8
9
10
11
12
switch (new Date().getDay()) {
    case 4:         //代码如果符合4,则会继续向下执行,执行到5中的代码块
    case 5:
        text = "周末快到了:)";
        break; 
    case 0:
    case 6:
        text = "今天是周末~";
         break;
    default: 
        text = "期待周末!";
} 

注意:

  • 如果多种 case 匹配一个 case 值,则选择第一个 case。
  • Switch case 使用严格比较(===)。值必须与要匹配的类型相同。

四.JavaScript For 循环

1
2
3
4
for (语句 1; 语句 2; 语句 3) {
     要执行的代码块
}
// 语句3会在循环(代码块)每次被执行后执行,所以i++这种语句可以放在代码块里,不一定非要放在参数里也可以别省略

五.While循环

Do/While 循环是 while 循环的变体。在检查条件是否为真之前,这种循环会执行至少一次,然后只要条件为真就会重复循环。