条件语句(实现分支结构)
单向分支 if
if (表达式) {
code...
}
双向分支 if...else
if (表达式) {
code...
} else {
code...
}
多向分支 if... else if
if (表达式) {
code...
} else if (表达式) {
code...
} else if (表达式) {
code...
} else {
code...
}
多向分支 switch...case
一个变量在不同值情况下的不同操作,我们可以改写为 switch case 判断
(他只能应用于等于什么值做什么事情,不能用户大于或者小于啥值做啥)
switch (值) {
case 可能的值: code....; break;
//=>每一种情况结束都要设置break(以供当此条件成立并处理完事情后,通知代码不在向下执行)
case 可能的值: code....; break;
//每一种case情况都是基于 === 进行比较的(严格比较,需要保证数据类型的一致)
case 可能的值: code....; break;
case 可能的值: code....; break;
default: code....; //=>等价于else,而且最后一个判断结束无需设置break
}
●如果忘记写break,无论你是否满足case的要求,都会往下执行一直到遇到breake或者default结束;
分支结构嵌套
循环语句(实现循环结构)
while 循环
while (循环条件) {
code...
}
do...while循环
do {
code...
} while (循环条件)
总结:while循环是先判断后循环 ,而do–while循环是先循环后判断。
for 循环
for (循环变量; 循环条件; 循环变量变化) {
code ...
}
//循环输出 0-10
for (var i = 0; i <= 10; i ++) {
console.log(i)
}
跳转语句
●break语句 结束整个循环
●continue语句 结束当前循环
●return语句 返回函数值(后面看)
【案例解说具体含义】
i++和++i的理解
题解1
var i = 5;
var b=i++;
console.log(b);
题解2
var i = 5;
var b=++i;
console.log(b);
题解3
vari = 5;
i = (i++) + (i++) + (++i) + (++i);
console.log(i)
三元运算
1、【语法】:
条件?条件成立执行的语句:条件不成立执行的语句
var num=5
if(num>=5){
num++
}else{
num--
}
2、【特殊情况】
条件成立,我想做一件事情,不成立我什么不做,可以用 undefined/null/void 0来做占位符
var num=5;
num>=5?num++:undefinde;
num>=5?num++:null;
num>=5?num++:void 0;
3、【多条语句】
如果条件成立之后,想同时执行多条语句,我们可以用“小括号”把执行语句包起来,并且语句与语句之间用“逗号”进行分割
var num=5;
var a=3;
num>=5?(num++,a--):null;
条件判断里面的相互转换规则
==和!=
===和!==
对象==对象的时候,如果引用地址相同,就相等,如果引用地址不同就不等
对象==数字类型的时候,都先转换为数字,再比较
对象==字符串类型的时候,把对象转换为字符串,再进行比较
对象==布尔数据类型的时候,都先转换为数字,在比较
数字==字符串,都先转换数字类型,再比较
数字==布尔,都先转换为数字类型,再比较
字符串==布尔,都先转换为数字类型,再比较
总结:对于不同的数据类型转换规律:
1)对象和字符串比较的时候,是对象先转为字符串然后再进行比较
2)除了第一种,不同数据类型比较都是先转换为number数字,再进行比较
特殊情况总结:
null==undefined true
null===undefined false
null 和 undefined 和其它值永远不相等
NaN 和其它值永不相等