三个判断
if…else…只会执行其中一个条件
如果if条件中只有一个值,那么会默认转布尔;
if(1=="1"){ // 当括号中条件为true时,执行此处的代码 console.log(100); }else{ //如果括号中条件不成立,此处代码是不执行的; console.log(200); } if(true==[]){ console.log("100块钱") }else if([]!==[]){ console.log("200块钱") }else if(typeof NaN === "Number"){ console.log("250块钱") }else{ console.log("300块钱"); } if([]=={}){ console.log("100") } if(isNaN(true)){ console.log("100") } // 如果括号中只有一个值时,转布尔类型 if(undefined){ console.log(100) if(0==false){ console.log(1) if([]){ } } }
三元运算符: 一般用于处理简单的逻辑;
- 一般用于处理简单的逻辑;
- ? 前面放的是条件,问号后面是当条件成立时,执行的代码;
- 当条件不成立时,执行的代码;
if(1=="1"){ console.log(100) }else{ console.log(200) } 1=="1"console.log(100):console.log(200); 晚自习练习; if(1=="1"){ if([]==false){ console.log(100) }else{ console.log(200) } }else{ console.log("你对了"); } 1=="1"?[]==false?console.log(100):console.log(200):console.log("你对了");
switch case
进行绝对比较扩号中的值和case后面的值进行绝对比较;===break : 中止 中断;default : 默认执行;在条件中如果没有break,会继续向下执行;即便条件不成立;
var num = 10; switch (num){ case "0": console.log("第一天"); break; case 0: case 10: console.log("明天"); break; case false: console.log("第二天"); break; default: console.log("后天"); }
三个循环
for循环
概述:JS是单线程的,每次只能执行一行代码;for循环是同步,需要等待for循环完成,才继续往下执行;
for 循环的四步曲:
1. 初始化变量
-
条件判断
-
执行循环体中的代码;
-
执行i++;1–>2–>3–>4–> 2–>3–>4–> 2–>3–>4
for(var i=0;i<5;i++){ //此处的代码都是循环体的代码; // i=0 0<100 // i=1 //... // i=2 // i=3 // i=4 // i=5 不再执行循环体; console.log(i); console.log(100); } console.log(i); i ++ : 在自身基础上+1; var a = 0; console.log(a++);// 先输出a的值,然后再+1; console.log(a);
continue;// 结束本轮循环;for循环下面的代码都不再执行;break: 结束整个循环;i++ 不再执行;
for in循环
var obj ={a:1,b:2,c:3,12:16,1:2};for in: 遍历循环对象;循环中,只能用对象名[属性名]来获取属性值;循环次数:跟当前对象键值对的个数有关;key : 是字符串在循环中,如果有数字的话,先输出,并且按照数字大小顺序,越小越先输出;不允许写对象名.属性名
for(var key in obj){ console.log(key);// 属性名; console.log(obj[key]);// 属性值
while循环
一般用于不知道循环多少次,一般用于阻塞线程
// while 循环: 不知道循环多少次; var i =1; while(i<6){ console.log(1); i++; }