JavaScript的运算符与流程控制

一、运算符的详解

  1、算术运算符
  描述:++(自增运算符)、--(自减运算符)
  语法:++num、num++、--num、num--
  功能:对变量本身进行加1或减1
  例子:
    var num = 10;
    num++;  // 相当于num = num+1;
    console.log(num);
      num--;  // 相当于num = num-1;
        console.log(num);
  注意:
   (1)对于自增自减运算符,如果出现在运算子的前面,则先将自己自增或自减,然后再执行当前语句。
   (2)对于自增自减运算符,如果出现在运算子的后面,则先执行当前语句,执行完毕再自己自增自减。
  例子:
       var num =10;
       console.log(++num);  // 先计算本身,再参与语句执行
       console.log(num++);  // 先参与语句执行,再计算本身
       console.log(num);

  2、赋值运算符
  描述:+=、-=、*=、/=、%=
  语法:num+=6;
  解释:表示累加,【num+=6;】相当于【num = num+6;】
  例子:
    var num = 10;
    num+=1;  // num = num+1; num++;
    console.log(num);

  3、比较运算符
  描述:比较运算符能够根据规则比较两个变量的值,返回一个布尔值,用来表示是否满足规则。
  类型:==、===、!==、!===、>、>=、<、<=
  例子:
    var num1 = 15;
    var num2 = 30;
    var num3 = '15';
    console.log(num1==num3);
  思考:数字能够比较大小,那么字符串能不能比较呢?如果能,怎么比较呢?
  js中字符串间的比较是按照位次优先,比较各字符的ASCII码大小,包括数字字符串之间的比较。】
  例子:
    1.console.log("1"<"3");  // true 
    2.console.log('5'<'10');  // false  
    3.console.log("123"<"123");  // false
    4.console.log("abc"<"aad");  // false  补    var item1 = undefined;

      var item2 = null;
      console.log(item1==item2);
      console.log(item1===item2);  // false
      console.log(undefined===undefined);
      console.log(null===null);

  4、布尔运算符
  描述:&&(与)、||(或)、!(非)
  语法:
     (1)&&与运算符:(表达式1)&&(表达式2);
          运算符两端表达式结果均为true的时候,整个表达式为true,有一个为false,则整个结果为false
        var num1 = 15;
        var num2 = 30;
        var result = (num1>5)&&(num2<50);
      console.log(result);

     (2)||或运算符:(表达式1)||(表达式2);
       运算符两端表达式任一结果为true的时候,整个表达式为true,两者皆为false,则整个结果为false
       var num1 = 15;
       var num2 = 30;
       var result = (num1>5)||(num2>50);
       console.log(result);

      (3)!非运算符:!(表达式)
      表达式结果为true,则整个表达式结果为false;
      表达式结果为false,则整个表达式结果为true;
      var num1 = 15;
      var result = !(num1>5);
      console.log(result);

  5、运算符优先级(截取常用部分)
    初等单目一二级    //()小括号是初等运算符,因为优先级最高
    乘除取余加减移
    关系等于不等于
    与或赋值终对齐
      注:
      (1)运算符的优先级按照出现的顺序排列,谁先出现谁优先级高。
      (2)
单目:一个运算数 i++, i--, !a
      
(3)双目:两个运算数 a+b a-b a*b
        (4)三目:三个运算数 bc=a?b:c; (if(a) bc =b;else bc =c;)

二、流程控制

1、if语句
描述:表示判断表达式是否成立,如果成立执行大括号中的语句。如果不成立直接跳过。
语法:if(表达式){ 语句; }
例子:
  var numInput = document.getElementById('num');
  var btn = document.getElementById('btn');
  btn.onclick = function () {
  var num = parseInt(numInput.value);
  //如果用户输入的数字大于10,那么提示合法,否则提示不合法
  if(num>10){
  alert('输入合法');
  }
  if(num<=10){
  alert('输入不合法');
  }
  };

注意:
  (1)表达式必须放在小括号之中。执行语句必须放在大括号内。
  (2)if条件语句最后不用加分号。
  (3)执行语句如果只有一句,那么大括号可以不写。但是推荐所有情况都加上大括号。
  【如果不写大括号,那么默认if后面的第一个语句是if的执行语句】

 

2、if-else语句
描述:如果满足条件执行if中的语句,如果不满足则执行else中的语句。
  if(表达式){
  语句1;
  ...
  }else{
  语句2;
  ...
  }
例子:
  var num = 10;
  if(num>0){
  console.log('输入合法');
  }else{
  console.log('输入不合法');
  }
  console.log('hello world!');
注意:
  (1)if-else语句是if的升级版本,表示二元判断,一定会执行一种情况。
  (2)if-else是一个语句,末尾不加分号。并不意味着执行语句不加分号!
  (3)if后面的表达式,只要能返回一个布尔值即可。
例子:
  var num = 10;
  if(true){
  console.log('输入合法');
  }else{
  console.log('输入不合法');
  }
  console.log('hello world!');

 

3、if-else if语句
描述:
  判断表达式1是否成立,如果表达式1成立执行语句1并if结构立即结束。
  如果不成立则判断表达式2是否成立,如果表达式2成立执行语句2并if结构立即结束。
  如果不成立则判断表达式3是否成立,如果表达式3成立执行语句3并if结构立即结束。
  ...
  如果以上所有条件都不成立,则直接执行else语句,并立即结束。

语法:
  if(表达式1){
  语句1;
  }else if(表达式2){
  语句2;
  }
  ...
  else{
  语句4;
  }
注意:
  (1)if-else if末尾没有分号
  (2)else语句不能单独存在,总是向上查找离他最近的if,构成if-else结构
  例子:
    var bmi = 22.9;
    if(bmi>22.3&&bmi<23.9){
    console.log('健康');
    }else if(bmi<22.3){
    console.log('太瘦了');
    }else{
    console.log('太肿了');
    }

 

4、switch
描述:在多种情况下判断,并选择一种情况执行的语句结构。
语法:
  switch (表达式){
  case 结果1:{执行语句1;...}
  break;//当执行了语句1之后,能够跳出并结束switch语句
  case 结果2:{执行语句2;...}
  break;
  ...
  default:{执行语句n;}
  }
解释:如果【表达式的结果】等于【结果1】,就执行语句1,并结束switch。
如果不等于,则判断是否等于结果2,如果等于就执行语句2,并结束switch。
如果不等于,则判断是否等于结果3,如果等于就执行语句3,并结束switch。
...
如果所有case后面的结果都不满足,那么直接执行default后面的语句,并结束switch。
注意:
  (1)switch语句当中case后面的break必须要写。如果不写,则会从满足的这个case开始将后面所有的情况全都执行一遍。
  (2)default语句理论上可以不写,如果不写当都不满足时switch直接跳出。
  (3)switch语句一定会执行一种情况对应的语句(语法结构完整情况下)

 

5、while循环语句
描述:当满足循环条件的时候执行循环体,直到不满足为止,跳出循环。
语法:
  while(循环条件){
  循环体
  }
注意:
  (1)循环变量必须在循环中,向着循环结束的方向发生变化。
  【如果不改变,或改变方向反了,则会将循环变成无限循环。也叫死循环。】
  (2)while循环最少执行次数为0次
  (3)循环执行开始之前,循环变量必须先赋初值
  (4)循环体中如果只有一条语句,那么大括号可以不写。(最好写上)
  (5)while循环末尾没有分号!
例子:
  输出10以内的偶数

  var num = 1;
  while(num<11){
  //只要满足条件,就意味着num还在1-10之间。
  //那么就判断num当前是不是偶数即可。
  if(num%2==0){
  console.log(num+'是偶数');
  }
  num++;
  }

 

6、do-while循环语句
描述:先执行一次循环体。
然后判断循环条件,如果满足则继续执行循环体。
如果不满足,则跳出循环,循环终止。
语法:
  do{
  循环体
  }while(循环条件);

说明:do-while循环的注意事项、逻辑结构基本都和while循环相同,
唯一的区别就是do-while循环会先执行一次循环体,
而while循环则是先判断循环条件。
例子:
  var i = 0;
  do{
  if(i%2==0){
  console.log(i+'是偶数');
  }
  i++;
  }while(i<10);

 

7、for循环语句
描述:能够设定循环多少次,并直接设定循环条件和循环增量的语法结构。
语法:
  for(表达式1;表达式2;表达式3){
  循环体
  }
例子:
  for(var num = 0; num<10; num++){
  console.log(num);
  }
解释:
  【1】执行表达式1:var num=0; 循环变量赋初值
  【2】执行表达式2:num<10; 判断循环能否继续执行
  (1)满足条件,循环继续,执行循环体
  (2)不满足条件,循环终止
  【3】因为满足条件,因此执行循环体:console.log(num);
  【4】执行表达式3:num++; 让循环变量向着循环结束的方向变化
  【5】执行表达式2...
注意:
  (1)表达式1可以不写,如果不写需要在for循环之外,给循环变量赋初值
  (2)表达式2可以不写,如果不写代表循环条件恒成立(死循环)
  (3)表达式3可以不写,如果不写需要在for循环的循环体中,让循环变量发生改变
  (4)三个表达式实际上可以都不写,但是用于间隔的分号必须写!

 

8、辅助流程控制语句
1.break
描述:用来终止代码块或者循环,循环立即终止。
例子:
  for(var i = 0;i<100;i++){
  if(i == 10){
  console.log('我需要这个10');
  break;//循环在此立即终止
  }
  console.log(i);
  }

2.continue
描述:用来终止本次循环,并立即开始下一次循环,循环不终止。
例子:
  for(var i = 0;i<100;i++){
  if(i == 10){
  console.log('我需要这个10');
  continue;//立即终止本次循环,并立即开始下一次循环。
  }
  console.log(i);
  }

posted on 2019-12-29 23:50  文艺小书生  阅读(194)  评论(0编辑  收藏  举报

导航