JavaScript之运算符

152 阅读2分钟

目标

  • 能够使用运算符
  • 能够说出前置递增和后置递增的区别
  • 能够说出运算符的优先级

1. 运算符

运算符也叫操作符,用来实现赋值、比较和执行算数运算功能的符号。

  • 算数运算符
  • 递增、递减运算符
  • 比较运算符
  • 逻辑运算符
  • 赋值运算符

2. 算数运算符

1651103418(1).png

浮点数 算数运算里面会有问题

console.log(0.1 + 0.2) //0.3000000000004
console.log(0.07 * 100) //7.000000000001
// 不能够直接判断两个浮点数是否相等
var num = 0.1 + 0.2;
console.log(num == 0.3);

表达式和返回值 表达式:由数字、运算符、变量等组成的式子。

任何表达式都会有返回值

3. 递增、递减运算符

num = num + 1;
// 前置运算
++num;
--num;
// 后置运算
num++;
num--;

3.1 前置

++age ==> age = age + 1;

var p = 10;
console.log(++p + 10); // p = 21

//先做加法再返回返回值

3.2 后置

age++ ==> age = age + 1;

// 前置自增和后置自增单独使用,效果是一样的
// 后置自增,先返回原值,后自加1
var age = 10;
console.log(age++ + 10); // 20
console.log(age); // age = 11
// 前置自增,先自加1,后返回值

3.3 强化

var c = 10;
c++; // c++ 11 c = 11
var d = c++ + 2; // c++ = 11 c = 12
console.log(d) // 13
var e = 10;
var f = e++ + ++e; //e++ = 10 e = 11 2.e = 12 ++e = 12
console.log(f); //22

3.4 小结

  • 前置和后置在单独使用时,运算结果是一致的
  • 与其他代码一起用时,后置自增会先返回原值进行运算后自增
  • 与其他代码一起用时,前置自增会先自增后返回值

4. 比较运算符(关系运算符)

1651105321(1).png

var a = 1, b = '1';
console.log(a === b);  // false
console.log(a !== b);  //true
console.log(a == b);   //true , == 会默认转换数据类型,会将字符串的数据转换为数字型
var a = 1, b = 2;
console.log(a == b);   // false
console.log(a != b);   //true

5. 逻辑运算符

5.1 逻辑运算符

1651105784(1).png

  • 逻辑与 && 有假为假
  • 逻辑或 || 有真为真
  • 逻辑非 ! 非真非假
var num = 7;
var str = '我爱你~中国~';
console.log(num > 5 && str.length >= num); //true
console.log(num < 5 && str.length >= num); //false
console.log(!(num < 10)); //false
console.log(!(num < 10 || str.length == num)); //false

5.2 逻辑中断(短路运算)

当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值;

1651107423(1).png

//逻辑与 短路运算,如果表达式1为真,则返回表达式2
console.log(123 && 456); // 456
//逻辑与 短路运算,如果表达式1为假,则返回表达式1
console.log(0 && 456); // 0
console.log('' && 1 + 2 && 456); // ''
//逻辑或 短路运算,如果表达式1为真,则返回表达式1
console.log(123 || 456); //123
console.log(123 || 455 || 789); //123
console.log(0 || 123 || 455 || 789); //123
//逻辑或 短路运算,如果表达式1为假,则返回表达式2

6. 赋值运算符

1651107970(1).png

7. 运算符优先级

1651108186(1).png

var a = 3 > 5 && 2 < 7 && 3 == 4; // false
var b = 3 <= 4 || 3 > 1 || 3 != 2; // true
var c = 2 === '2'; // false
var d = !c || b && a; // true