一. 条件语句(实现分支结构)
1. 单向分支if
-
语法:if(条件语句){}
-
特点:所有if后边的条件语句都会转换为布尔值,只有为ture的时候,才会进入到这个条件里边执行代码
if (1 > 0) {
// 满足条件才到里面,执行这里面的代码
// 做一些事情...
console.log("蹦个迪")
}
2. 双向分支if……else
- 语法:if(条件语句){} else { }
if (1 < 0) {
console.log("没错");
} else {
console.log("小学没过关是吧!!")
}
3. 多向分支if……else if
if (表达式) {
code...
} else if (表达式) {
code...
} else if (表达式) {
code...
} else {
code...
}
4.多向分支 switch case
- 一个变量拥有很多种值的不同操作时,我们可以使用switch case 判断
- 值为固定,不能出现范围
- 如果忘记写break,无论是否满足case要求,都会往下继续执行,直到遇见break/default结束
- 注意:
-
- switch case 里边比较的是绝对相等(===):数据类型一样,地址相同。
- 每一个条件结束后,都要增加一个break关键字,跳出switch循环
-
- 如果都不满足,最终会回到default(可以省略不写),
switch (值) {
case 可能的值: code....; break;
//=>每一种情况结束都要设置break(以供当此条件成立并处理完事情后,通知代码不在向下执行)
case 可能的值: code....; break;
//每一种case情况都是基于 === 进行比较的(严格比较,需要保证数据类型的一致)
case 可能的值: code....; break;
case 可能的值: code....; break;
default: code....; //=>等价于else,而且最后一个判断结束无需设置break
}
二.条件判断里的相互转换规则
1. 如果是对象数据类型,那就只要出去比较空间地址,空间地址是同一个,那就相等
2.对象和字符串比较,想先把对象转换成字符串,再去比较
3.除了第二条的情况,其他不是同一类型的,先都转换为number,再去比较
4.特殊记忆:
- null与undefined
- null == undefined ture
- null === undefined false
- null与undefined和任何其他值都不会相等的,自身是相等的
- NaN除了自身之外和其他值永不相等
三. i++及++i的区别
- 只有在计算时会有区别
- i++先赋值在加1
- ++i先加1在赋值
- 在日常使用中基本没有差别
- --i及i--同理
四. 循环语句
1. while循环
- 特点:只要满足条件就会一直执行
- 适用于不知道要循环多少次的应用场景
while (循环条件) {
code...
}
2. do……while循环
- 特点:不管条件成不成立,都会先do里边的内容
do {
code...
} while (循环条件)
3. for循环
- 语句:for(变量名;变量条件;变量变化){}
for (循环变量; 循环条件; 循环变量变化) {
code ...
}
//循环输出 0-10
for (var i = 0; i <= 10; i ++) {
console.log(i)
}
4.跳转语句
- break 语句 结束整个循环
- continue 语句 结束当前循环
- return 语句 返回函数值
for(var i=0;i<10;i++){
if(i<5){
i++;//
continue;
}
if(i>7){
i+=2;
break;
}
i+=1;
}
console.log(i);
5.三元运算
- 语法:变量条件语句?条件成立执行语句:条件不成立执行语句;
- 不成立时不作为时可用 undefined/null/void(0)来做占位符
- 条件成立时执行多个语句可以用小括号包起来,并且语句之间用“逗号”进行隔开