条件语句 (分支结构)
单向分支 if
if (条件) {
code...
}
双向分支 if...eles
if (表达式) {
code...
} else {
code...
}
多向分支 if...eles if
if (表达式) {
code...
} else if (表达式) {
code...
} else if (表达式) {
code...
} else {
code...
}
多项分支 switch...case
一个变量在不同值情况下的不同操作,我们可以改写为 switch case 判断
(他只能应用于等于什么值做什么事情,不能用户大于或者小于啥值做啥)\
- 所有if条件里面都会转化布尔值,只有为true的时候,才会进这个条件里执行代码
- switch...case里面的比较是绝对相对
switch (值) {
case 可能的值: code....; break;
//=>每一种情况结束都要设置break(以供当此条件成立并处理完事情后,通知代码不在向下执行)
case 可能的值: code....; break;
//每一种case情况都是基于 === 进行比较的(严格比较,需要保证数据类型的一致)
case 可能的值: code....; break;
case 可能的值: code....; break;
default: code....; //=>等价于else,而且最后一个判断结束无需设置break
}
while 循环
复合条件无暇循环
while (循环条件) {
code...
}
do...while循环
会先打印一个,如果复合条件就会无线循环
do {
code...
} while (循环条件)
for 循环
for (循环变量; 循环条件; 循环变量变化) {
code ...
}
//循环输出 0-10
for (var i = 0; i <= 10; i ++) {
console.log(i)
}
跳转语句
- break语句 结束整个循环
- continue语句 结束当前循环
- return语句 返回函数值(后面看)
三元运算
1、【语法】:
条件?条件成立执行的语句:条件不成立执行的语句
var num=5
if(num>=5){
num++
}else{
num--
}
改写成三元运算如下
num>=5?num++: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.如果是对象数据类型,只要去比较数据地址就行,空间地址是同一个,那就是相对(true)
3.除了第一条,其他不是同一数据类型,先都转化为number,在进行比较
特殊情况总结:
null==undefined true
null===undefined false
null 和 undefined 和其它值永远不相等
NaN 和其它值永不相等