2022-04-16

算数运算符

加减乘除 取余(求模)
取余的开发用法: 判断某个数字是否能被整除
// 算数优先级:
// 先乘除后加减,有括号先算括号

赋值运算符

=
+= -= *= /= %=
赋值的简便写法:

  //  +=
  let num = 1;
  // 相当于: num = num + 1
  num += 1; // num == 2

  //  -=
  // 相当于: num = num - 1
  num -= 1; // num == 1

  //  *=
  // 相当于: num = num * 2
  num *= 2; // 2

  //  /=
  // 相当于: num = num / 2
  num /= 2; // 1

  // %=
  // 相当于: num = num % 2
  num %= 2; // 1

一元运算符

自增运算符的用法:
前置自增:先自增,后运算
后置自增:先运算,后自增

  let num = 2;
  console.log(++num + 2);//5

  num = 2;
  console.log(num++ + 2);//4

比较运算符

比较两个数的大小,是否相等
返回值是Boolean
字符串类型 和 数字类型作比较的时候;会尝试的吧字符串转化为数字;再做比较
== 等于: 只比较 值的大小
=== 全等: 比较 值的大小 和 类型
!== 不全等
NaN 不等于任何值;包括自身
console.log(NaN == NaN);false
console.log(NaN === NaN);false
console.log(NaN === 222);false
// 尽量不要比较(计算)小数; 小数有精度问题
// 小数在内存中存储方式,会导致精度问题

逻辑运算符

返回值是Boolean
三类:逻辑与 逻辑或 逻辑非
日常说法: 并且 或者 取反
1.逻辑与 &&
// 左边 并且 右边 , 都会true, 返回结构才是true (只要有一个假,结果就是假)
// 一假则假

  console.log(true && true);//true
  console.log(true && false);//false
  console.log(false && true);//false

2.// 逻辑或:||
// 一真则真

  console.log(false || true);//true
  console.log(true || false);//true

3.// 逻辑非: !
// 取反
// 真变假,假变真

  console.log(!true);//false
  console.log(!false);//true

短路运算符

取值看是否短路,没短路取后面的值,短路取前面的值。

  1. 逻辑运算符的使用技巧: 短路
    // 只会发生在 && || 里面

&&: 只要左边为 false,右边就被短路

  1 < 2 && console.log(123); // 有输出
  2 < 2 && console.log(123); // 短路没输出

|| : 只要左边为 true,右边就被短路

  1 < 2 || console.log(123); // 短路没输出
  2 < 2 || console.log(123); // 有输出
  1. 短路表达式: 有返回值
  console.log("false && 1: ", false && 1); // false
  console.log("0 && 1: ", 0 && 1); // 0 注:0是false
  console.log("true && 1: ", true && 1); // 1 
  console.log(" false || 1: ", false || 1); // 1 
  console.log("1 || false: ", 1 || false); // 1 短路

运算符的优先顺序

先计算,再比较大小,再判断相等,再判断逻辑运算符;
记不住,或者比较长的表达式,应该人为增加(),这样更直观


运算符优先顺序.png

表达式和语句

表达式:通常会在原地返回一个值; 代码较短

  console.log((x = 7));
  console.log(3 + 4);
  console.log(x++);
  console.log(x);

语句:用来描述一件事情,代码量比较长
例如:执行 alert() 弹出对话框,console.log()等

语句的分支语句

if(表达式){...要执行的代码}
表达式: 返回值Boolean型 true / false

  // 需求:分数大于700提示考入程序员
  let grade = prompt("请输入您的高考成绩:");
  if (grade > 700) {
    alert("恭喜考入程序员");
  }

多分支语句:if,else
if(表达式){..}else if(表达式){...}else .......

  // 需求: 根据输入不同时间,输出不同的问候语
  let hour = prompt("请输入一个时间:");
  if (hour < 12) {
    alert("上午好");
  } else if (hour < 18) {
    alert("下午好");
  } else if (hour < 20) {
    alert("晚上好");
  } else {
    alert("开始emo");
  }

拓展:补0案例。


三元运算符

1.三元:需要3个操作数
2.表达式:三元表达式会返回一个值
语法: 条件? 满足条件返回这里的执行结果 : 不满足条件返回这里的执行结果

  // 需求: 用户输入2个数,控制台输出最大的值
  let num1 = +prompt("请输入第一个数字");
  let num2 = +prompt("请输入第二个数字");
  // 其实就是:双分支语句
  console.log(num1 > num2 ? num1 : num2);

你可能感兴趣的:(2022-04-16)