JS 3day

68 阅读2分钟

条件语句 (分支结构)

单向分支 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 和其它值永不相等