js_运算符&流程控制

运算符和流程控制

运算符的详细讲解见w3c

一元运算符

1
2
++
--
1
2
3
4
如果不参与运算,++放在前面还是后面的结果都是一样的;
如果不参与运算,--在前面还是在后面的结果都是一样的;
如果参与运算,++,--在前面的值和在后面的值可能不一样,
++在前面,先进行自身+1运算;在后面,先不+1。--同理
1
2
3
var i=1;
var j=i++ + i++;
console.log(j);//3
1
2
3
var i=1;
var j=i++ + ++i;
console.log(j);//4
1
2
3
var i=1;
var j=++i + i++;
console.log(j);//4
1
2
3
var i=1;
var j=++i + ++i;
console.log(j);//5

流程控制

1
2
3
4
1、顺序结构:从上到下,从左到右的执行顺序,就叫做顺序结构
2、分支结构:if语句,if-else语句,if-else if-else if...语句,switch-case语句,
三元表达式结构
3、循环结构:while循环,for循环,do-while循环,后期还有for-in循环

分支语句if

语法格式:

if语句:主要是判断

if(表达式){
    代码块
}
执行过程:先判断表达式是true还是false,如果是true则执行代码块,如果是false,则大括号内的代码块是不会执行的。

if-else语句

if(表达式){
    代码一
}else{
    代码二
    }
执行过程::如果表达式是true,则执行代码一,否则执行代码二
例子:
1
2
3
4
5
6
7
var num1=10;
var num2=20;
if(num1>num2){
console.log(num1);
}else{
console.log(num2);
}
例子:判断这个数字是奇数还是偶数?
1
2
3
4
5
6
var num=parseInt(prompt("请您输入想要测试的数字"));
if(num%2==0){
console.log("不是奇数");
}else{
console.log("是奇数");
}

if-else-if语句

1
2
3
4
5
6
7
8
9
if(表达式一){
代码块1
}else if(表达式2){
代码块2
}else if(表达式3){
代码块3
}else{
代码块4
}

注意:

1、else if——这种结构可以写多个,具体多少个看需求
2、else—是可以不用写的,具体是看需求

执行过程:先判断表达式1,如果是true,则执行代码块1 ,如果是false,判断表达式2 ,如果是true,则执行代码块2 ,否则判断表达式3,如果是true,则执行代码块3,否则执行代码4。

switch-case分支语句——多分支语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
switch(表达式或者变量){
case 值1:
代码块1;
break;
case 值2:
代码块2;
break;
case 值3:
代码块3;
break;
default:
代码块 *;
break;
}

执行过程:获取表达式的值,和值你比较,如果一样,则执行代码块1 ,遇到break,后面的代码就不会执行;如果表达式的值与值1不一样,就和值2比较,如果一样,则执行代码块2,遇到break就跳出,后面的代码不会执行。同理,值3—->若没有任何值和表达式的值相等,default页也是这样执行的。每条执行后,都会遇到break跳出循环。

注意:

1、default后面的内容可以省略
2、switch-case语句中和case后面的值比较的时候,采用的是严格模式
3、switch的优点在于能够清楚呈现出索要执行的结构,程序写得越长,就越能看到其优点;不过它也有缺点,就是只能执行一个条件表达式,而if-else判断结构则无此限制。
4、switch判断结构可以根据表达式或变量的值有不同的执行方向。

分支三元表达式:两个分支,最终的结果是两个分支中的一个,像这样的情况属于三元表达式

1
2
//运算符号:变量= 条件表达式 ? 值1 :值2
var 变量名=表达式1?表达式2:表达式3;

执行过程:表达式1的结果是true还是false,如果是true,则执行表达式2,把最后的结果给变量;如果是false,则执行表达式3,把最后的结果给变量

例子:获取两个数的最大值(以前的方法)
1
2
3
4
5
6
7
var num1=10;
var num2=100;
if(num1>num2){
console.log(num1+"是最大值");
}else{
console.log(num2+"是最大值");
}

总结分支语句

1
2
3
4
5
6
7
8
9
10
分支语句:
if语句:只有一个分支
if-else语句:两个分支,但是只执行一个
if-elseif语句:多个分支,只会执行一个
switch-case语句:多分支语句,但是只执行一句,(必须要有break;)
三元表达式:和if-else语句是一样的
什么时候使用if-else if语句?一般是对范围的判断
什麽时候使用switch-case语句?一般是具体的值得判断
如果有多个分支是针对范围的,就使用if-else if语句;如果是针对具体的值,就使用switch-case语句。