乐趣区

JS系列js三元运算符

三元运算符

语法:条件?成立做的事情:不成立做的事情;<=> 相当于简单的 if/else 判断 (简化写法)

    var num = 12;
   if(num>10){num ++;}else {num--;}
   =>   相当于三元运算符:num > 10? num++ :  num--;

特殊情况:

   //=> 如果三元运算符中某一部分成立不需要任何的处理我们用 null/underfined/void 0... 占位即可
   var num=12;
   num>10?num++ : null;
   //=> 如果需要执行多项任务,我们用小括号包裹起来,每条语句用逗号隔开
   num=10;
   num>10?(num++,num*=10):null;

思考题:

var num =12;
if(num>0){
if(num<10){

   num++;

}else {

num--;

}
}else {
if(num==0){

num++;
num=num/10;
}

}
改成三元运算符:
var num=12;
num > 0 ? (num < 10 ? num ++ : num–) : (num–, num=num/10);

switch case

js 中的一种判断方式, switch case 应用于变量(表达式)在不同值情况下不同的操作,每一个 case 结束后都需要加 break(结束整个判断)

   var num = 10;
   if(num==10){num ++;}else if(num==5){num--;}else {num=0;}
   改成 switch case
    var num = 10;
   switch(num){
      case 10:
           num++;
           break;
      case 5:
           num--;
           break;
      default:
           num=0;
}

> 不加 break,后面的条件不管是否成立,都会被执行;利用此机制,我们可以完成一些特殊的处理,例如:如果 num 等于 10 或者 5 都要做同一件事情,那么我们写在一起,不用加 break 即可(去掉 case10 里面的 break)
  • 思考:n++ 和 n =n+1 一样吗?
    1. var n=’10’;
      n = n+1;
      console.log(n) =>101
      //=> 属于字符串拼接,结果是‘101’
      遇到字符串是字符串拼接,遇到数值是数学运算,如果是 n ++ 会是数学运算

      = 是赋值,== 判断是否相等,=== 判断绝对相等(类型和值都必须相等)

  '10'==10 => true 数值相等,类型不同,相等比较,如果等号左右两边的类型不一样首先转化一样的数据类型,然后进行比较,当前案例是把字符串 '10' 转化为数字,然后再比较。'10'===10 => false  数值和类型都相等。绝对比较,如果两边的数据类型不一样,则直接不想打呢个,它要求类型和值都完全一样才会相等(真实项目中为了保证严谨性,使用绝对等号)
  • switch case 中的每一种 case 情况的比较都是基于 ”===” 绝对相等来完成的。

例子:

   var num = 5;
   switch(num){
      case 10:
          
      case 5:
           num--;
           break;
      default:
           num=0;
}
    console.log(num);
    VM1668:12 4

FOR 循环

作用:按照一定的规律重复去做某件事情,此时需要循环处理。

var ary = [12,23,34];
ary
=> {
     0:12
     1:23
     3:34
     length:3
}
// 输出数组中的每一项内容
/* ==itar  [TAB] 键 自动补全循环的代码
 for (var i=0; i<ary.length; i++){//=> 第一次循环:i=0;i<3..i=1  =>ary[0]
      //=> 第二次循环:i=1;i<3..i=2  =>ary[1]
      //=> 第三次循环:i=2;i<3..i=3  =>ary[2]
      //=> 第四次循环:i=3;i<3 循环结束(本次没有循环)console.log(ary['i']);         
}

* 倒着输出:var ary = [12,23,34];
//=> 倒着输出每一项。倒着输出 34 23 12
//=> ary.length; 当前数组中最后一项的属性名(索引)for (var i= ary.length - 1; i >= 0;i--){console.log(ary[i])
}
=>
34 
23 
12
* 输出奇数项
    var ary= [12,23,34];
    for (var i=0; i<ary.length; i+=2){
   //=> 输出数组中的奇数项内容
   // i = 0 第一项 奇数项
   // i = 1 第二项 偶数项
   // i = 2 第三项 奇数项
   // 索引为偶数,代表奇数项,如果判断当前 i 的值是奇数还是偶数?//12%5:% 称为模,用 12 除以 5 取余数
   
   console.log(ary[i]);
}
   
}
  • FOR 循环的语法组成:

    1. 定义初始值 var i = 0
    2. 设置循环条件(条件成立循环继续,不成立循环结束)i< ary.length
    3. 条件成立会执行循环体中的内容(大括号包裹的就是循环体)
    4. 执行步长累加的操作
    • FOR 循环的循环体中,两个常用关键字:

      1. continue:继续
      2. break:中端或者结束
            for (var i = 0; i<10;i++){if(i<5){
             i++;
            continue; //=> 结束本轮循环(循环体中 continue 的代码不在执行)继续下一轮
         }
            if(i>7) {
              i + =2;
              break;//=> 强制结束循环,不能任何的处理
        }
              i += 3;
      }

思考题:
for (var i=1; i<=10; i+=2){

 if(i <= 5){
    i++;
    continue;
}else {
i  -=2;
break;
}
i--;
console.log(i);
}
=>5


退出移动版