js基础知识(二)
1.js的流程语句
循环语句
循环:重复执行相同或者相似动作
循环三要素:
思考:如果条件满足,且条件不更新,代码块会一直执行下去,会造成死循环
- 循环变量初始化 (循环体外声明)
- 循环条件(以变量为基础)
- 循环条件更新 (循环体内更新)
while
语法:while(条件表达式){循环执行的代码段;循环变量的更新;}
注意:如果没有循环条件的更新,会变成死循环,死循环是没有意义的。
// 100以内偶数的和
var i = 0;
var sum = 0;
while(i<=100){
if( i%2 == 0 ){
sum+=i;
}
i++;
}
console.log(sum);
流程:判断条件表达式的值,当值为true时循环体执行代码段,反之值为false时退出循环体。
特性:先检查条件是否成立,再执行代码,若条件不满足则循环一次都不执行。
应用:适用于一个动作被重复执行到满足为止;while循环使用场景不确定循环次数的时候,循环条件写成死循环(true),内部写条件判断,控制跳出,手动输入**break;**停止循环
do while
语法:do{循环体执行的代码段;循环变量的更新;} while(条件表达式);
var i = 0;
do{
console.log(i);
i++;
}while(i>5);
流程:先执行循环体内代码,再判断条件表达式的值,当值为true时循环体执行代码段,反之值为false时退出循环体。
特性:先执行再检查条件是否成立,若条件不满足则循环不执行,此循环体内的代码至少执行一次。
应用:希望一个动作至少被执行一次
for
语法:for(循环变量初始值;循环条件;递增递减){循环体代码段;}
语句1:循环变量初始值
语句2:循环条件
语句3:循环变量更新
三个语句之间以;分割最后一个不加
// 100以内偶数的和
var sum = 0;
for(var i=0;i<=100;i++){
if(i%2==0){
sum+=i;
}
}
console.log(sum);
流程:
1.用循环变量初始值与循环条件比较,确定返回值。
2.如果返回值为true,则执行循环体代码段。
3.执行一次后初始值进行递增或递减运算。
4.将运算结果与循环条件比较。
5.若返回值为true,则继续执行,反之,退出循环。
应用:适用于一个动作循环到一定的次数。
for循环嵌套(双层for循环)
类比表格
for in
语法:for(var 变量 in 对象){代码段;}
var obj = {a:11, b:123, c:1234};//对象
for (var prop in obj) {
console.log("obj." + prop + " = " + obj[prop]);
}
// "obj.a = 11"
// "obj.b = 123"
// "obj.c = 1234"
var arr = ['a','b','c','d'];//数组
for(var index in arr){
console.log(index +'. ' + arr[index]);
}
// 0. a
// 1. b
// 2. c
// 3. d
每次循环key变量储存的值,当前对象的属性值(obj[属性名])
应用:用来循环遍历对象中的键值对的
注意:循环输出的属性顺序不可预知,对象的值不能是null或undefined
循环中break
break关键子写在函数体中,作用是跳出循环
使用场景:
while循环一般适用于不确定循环次数,具体条件写死循环,在循环内部通过分支结构(if),结合break控制跳出循环
for循环也可使用(条件控制循环跳出)
选择语句
if
语法:
if (条件表达式){代码段;} 单分支
if (条件表达式){代码段1;}else{代码段2;} 双分支
if (条件表达式1){代码段1;}else if(条件表达式2){代码段2;}…else{代码段n;} 多分支
流程:
1.判断条件表达式,如果结果但会是true,则执行代码段,反之结果为false,则跳过判断下一条件表达式是否满足,
2.以此类推不满足则执行最后else后的代码段。
特性:
1.结构复杂,克嵌套,
2.检测多个条件表达式,表达式的值具有线型特征,
3.适用于任何类型的数据,可处理复杂的逻辑关系。
三目运算:条件表达式?代码段2:代码段3;
可以用于项目中判断和赋值,它的写法比较简单
switch case
语法:switch(条件表达式){
case 确定值1:代码段;
break;
case 确定值2:代码段;
break;
…
default:代码段n;
}
注意:
1,case 后面的必须和括号中的值是全等
2,适用于有多个确定值(因为是全等比较) if结构 条件可以是 一个 范围
3,页面中如果能用switch…case…结构就用 不要出现过多的 if。。else。。 代码可读性差(嵌套)
switch case 条件适用于 值是确定的
如何让switch case 的条件变成一个范围