JavaScript基础学习笔记 第二天

164 阅读4分钟

运算符

算数运算符

  • +加;-减;/除;*乘;%取余;

    • 在运算符中尽量不要用浮点型计算会存在误差
    • 浮点数的精度远远不如整数
    • 不要去判断浮点数是否相等
  • 表达式与返回值

    • 是由数字、运算符、变量组成的组成的式子即为表达式
    • 返回值就是表达式的结果

递增和递减运算符

  • 前置递增运算符:写在变量之前,先自加,再进行其他运算
  • 后置递增运算符:写在变量之后,先返回原值进行其他运算,再自加
  • 在单独使用时效果相同
  • 符号 :++递增;--递减

比较运算符

  • 概念
    • 是两个数据进行比较是会使用的运算符;返回值为布尔类型(true\false)
      • ==判等符号,读作:等于;会转换数据类型(隐式转换),只要求数值一致
      • ===判全等于符号,读作全等于或者严格等于;要求数值和数据类型完全一致

逻辑运算符

  • 逻辑运算符是用来进行布尔运算的运算符,返回值也是布尔值

    • 逻辑与&& 两侧都为true,结果才为true
    • 逻辑或||两侧都为false,结果才为false
    • 逻辑非!
  • 短路运算(逻辑中断)

    • 短路运算的原理

      • 逻辑与短路运算:第一个值转换为布尔值为true,返回值为第二个表达式;第一个值转换为布尔值为false,返回值为第一个值

      • 逻辑或短路运算:第一个值转换为布尔值为true,返回值为第一个表达式;第一个值转换为布尔值为false,返回值为第二个值

        • var num = 0;
          console.log (num || num++);
          console.log (num);
          
          var num = 0;
          console.log (123 || num++); // 逻辑中断之后,之后的程序就不再执行
          console.log (num);
          // output : 123 
          // output : 0
          

赋值运算符

  • =直接赋值
  • +=加一个数值再赋值;-=减一个值再赋值
  • *=乘上一个值再赋值;/=除以一个值再赋值;%=取模之后再赋值

JavaScript流程控制-分支

流程控制

  • 控制代码以某种流程顺序来执行
  • 主要有顺序结构,分支结构、循环结构

顺序流程控制

  • 程序会按照代码的先后顺序来执行,之前学习的内容否是按照顺序流程控制来执行的。

分支流程控制if语句

  • 分支结构:根据不同的条件,执行不同的路径代码。

  • if语句

    • if (条件表达式) {
          //条件表达式为真执行语句
      }
      
  • if、else语句(双分支语句)

    • if (条件表达式) {
          // 如果表达式为真 , 执行语句
      } else {
      	// 如果表达式为假,执行语句
      }
      // 最终只有一个语句能被执行
      
  • if、else if语句(多分支语句)

    • if (条件表达式1) {
          // 如果条件表达式1为真,执行语句
      } else if (条件表达式2) {
          // 如果条件表达式2为真,执行语句
      } else if (条件表达式3) {
          // 如果条件表达式3为真,执行语句
      }
      //....
      else {
          // 如果上述表达式都不成立,执行语句
      }
      

三元表达式

  • 条件表达式?语句1:语句2
    • 条件表达式为真,则输出语句1;如果条件表达式为假,则输出语句2

分支流程控制switch

  • 语法结构
switch (表达式) {
    case value1: 
        // 执行语句1
     break;
    case value2: 
		// 执行语句2	
	 break;
    case value3: 
		// 执行语句3
	 break;
	//...
default:
    // 最后执行的语句
}
// 如果需要使用 switch 进行判断 那么可以这样写
switch (true) {
    case (// 表达式1) 
        // 满足表达式1 执行的代码块
    break;
    case (// 表达式2) 
        // 满足表达式2 执行的代码块
    break;
    default : 
    // 不满足上述表达式 , 执行的代码
}

  • 注意事项

    • 我们在表达式中时常是写的变量
    • 表达式的值和value的值必须是全等的,否则是无法匹配的
    • 如果当前的case的内部没有break,则不会退出switch,而是执行下一个case,无论是否匹配
  • switch、case语句与if、else if 语句的区别

    • 一般情况下可以互相替换
    • switch、case语句适合判断case比较确定的情况下,if、else if语句适合用于判断范围的值