JavaScript-----5.运算符

1. 运算符(操作符)

JavaScript中常用的运算符有:

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

2. 算数运算符

+; -; *; /(10/20=0.5); %(取余数,取模9%2=1)

2.1浮点数进行算数运算

//程序里利用浮点数进行算数运算会产生误差,这里应该尽量避免用浮动数进行算数运算,针对这个问题之后会有其他的方法。
console.log(0.1 + 0.2);//0.30000000000000004
console.log(0.07 * 100);//7.000000000000001
//不可以直接用浮点数来进行相比较 是否相等 所以不要之间判断两个浮点数是否相等
var num = 0.1 + 0.2;
console.log(num == 0.3);//false

2.2表达式和返回值

表达式:数字、运算符、变量等以能求得数值的有意义的排列方法所得到的组合。
返回值:表达式都会有一个最终的结果返回给我们,这个结果称为返回值

3. 递增递减运算符

(++)和(--)递增递减运算符必须和变量配合使用,++2是无效的

3.1前置递增

  • 前置递增单独使用的时候:++num;等效于num=num+1;

  • 前置递增非单独使用的时候:先num自己加一,之后表达式++num;返回当前的num值。

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

3.2后置递增

  • 后置递增单独使用的时候: num++;等效于num=num+1;

  • 后置递增非单独使用的时候: 表达式num++;先返回当前的num值,之后num自己加一。
    变量永远比表达式大1

//count++
var count = 10;
console.log(count++ + 10)//20  (先返回值,后自加1)
console.log(count);//11

注意:console.log(count++)也是混合使用,也是先返回当前值再自加1。

3.3小练习

var a = 10; 
++a;  // a 是 11 ,++a是11
var b = ++a +2;//a是12,++a是12,b是14
console.log(b);//14

var c = 10;
c++;//c++是11,c是11
var d = c++ +2;//c++是11,c是12,d是13,
console.log(d);//12

var e = 10;
var f = e++ + ++e;//e++是10,e是11。  e是12,++e是12,f是22
console.log(f);//22

4. 比较运算符

比较运算后,会返回一个bool值作为比较运算的结果。
<; >; >=; <=; ; !=; =; !
说明:全等
=要求数值和数据类型都一致。

console.log(18 == 18);//true
//默认转换数据类型,将字符型的转换为数字型的再进行比较
console.log(18 == '18');//true

//全等
console.log(18 === 18);//true
console.log(18 === '18');//false

5. 逻辑运算符

用于进行布尔值运算的运算符,返回值也是一个布尔值,后面的开发中经常用于多个条件判断

  • 逻辑与&&
  • 逻辑或||
  • 逻辑非!
//&&
console.log(3 > 5 && 3 > 2);//false
console.log(3 < 5 && 3 > 2);//true
//||
console.log(3 > 5 || 3 > 2);//true
console.log(3 > 5 || 3 < 2);//false
//!
console.log(!true);//false

5.1. 逻辑运算符短路运算(逻辑中断)

原理:当有多个表达式(值)时,左边的表达式可以确定结果时,就不在继续运算右边的表达式的值了。
(1)逻辑与

  • 语法:表达式1 && 表达式2
  • 如果第一个表达式为真,则返回表达式2
  • 如果第一个表达式为假,则返回表达式1
console.log(123 && 456)//456
console.log(0 && 456)//0
console.log(0 && 1 + 2 && 456);//0
console.log('' && 1 + 2 && 456);//''
//0 null undefined NaN都为false

(2)逻辑或

  • 语法:表达式1 || 表达式2
  • 如果第一个表达式为真,则返回表达式1
  • 如果第一个表达式为假,则返回表达式2
//||
console.log(123 || 456)//123
console.log(123 || 456 || 456 + 123)//123
console.log(0 || 456 || 456 + 123)//456

(3)小练习

var num = 0;
console.log(123 || num++);
console.log(num);//0

6. 赋值运算符

=
+=; -=
*=; /=; %=

7. 运算符优先级

优先级由高到低排列如下:
1:小括号()
2: 一元运算符: ++; --; !。一元运算符中逻辑非优先级最高
3: 算数运算符: 先*/%后+-
4: 关系运算符:> >= < <=
5: 相等运算符:== != === !==
6: 逻辑运算符:先&&后||
7: 赋值运算符:=
8: 逗号运算符

原文地址:https://www.cnblogs.com/deer-cen/p/11990501.html