03.运算符

一.运算符

运算符(Operators,也翻译为操作符),是发起运算的最简单形式。

运算符的分类各有不同,我们就把运算符进行如下分类:

​ 数学运算符(Arithmetic operators)

​ 比较运算符(Comparison operators)

​ 逻辑运算符(Logical operators)

​ 赋值运算符(Assignment operators)

​ 按位运算符(Bitwise operators)

​ 条件 (三元) 运算符(Conditional operator)

1. 数学运算符

+-*/ 取余数 % 括号 ()

  1. +

    求两个数字和 2+3 ==>5

    字符串拼接 2+’3’ ==>’23’ 任何数据和字符串相加都是字符串

  2. - 求两个数字差 2 - 3 ==> -1

  3. * 求两个数字积 2 * 3 ==> 6

  4. / 求两个数字除 4 / 2 ==> 2

  5. % 求两个数字的余数 2 % 3 ==>2

1.1 隐式转换

所有带有字符串的运算都会尽可能的转为数字进行计算,

加号比较特殊。(加好在字符串中有拼接的意思)

数学运算中,五种基本数据类型中只有纯数字字符串、布尔值、null能够帮你进行隐式转换:

  • 发生隐式转换

    纯数字字符串,布尔值,null

    console.log(3 * "8"); //24
    
  • 不能隐式转换

    不是纯数字的字符串和undefined

    console.log(5 * "6天");    //NaN   
    
  • 特殊的加法

    因为+同时是加法和连字符的符号,所以加法在面对字符串的时候没有隐式转换,但是面对其他数据类型有隐式转换

    console.log(5 + "6");         //56
    

2. 比较(关系)运算符

> 大于

< 小于

>= 大于等于

<= 小于等于

== 等于

!= 不等于

=== 全等于

!== 不全等

2.1 数字比较运算
console.log(10 > 3);   // true
console.log(8 < 5);   // false

boolean类型只有两个值,就是true和false。表示真、假。true和false叫做布尔值。

== 我们叫做“相等判断”,它会帮你进行一个隐式转换,尽可能的得到true的答案:

console.log(6 == "6");  //true

=== 我们叫做“全等判断”,不仅仅比较数值是否相等,还比较类型是否相等,没有隐式转换

console.log(6 === "6");  //false

!=(不等) 是==(相等)的反面,如果==运算是true,那么!=就是false

!==(不全等)是===(全等)的反面,如果===运算是true,那么!==就是false

console.log(6 != "6");  //false ,
    //脑子要反着想一下,6=="6"结果是ture,所以就是false
console.log(6 !== "6"); //true , 
    //脑子要反着想一下,5==="5"结果是false,所以就是true
2.2 其他比较运算
  • string 和 string 的关系运算

    字符串进行关系运算,比较的就是字符编码顺序。

    字符编码顺序,就是数字、大写字母、小写字母

    "a" < "b" //true
    
  • string 和 number比,string会被隐式转换为number

    "25" < 3  //false
    
  • 其他基本类型与number进行关系运算,

    纯数字字符串被转为数字,null转换为0,true转换转为1, false转换为0

    特殊:null不能进行和0的相等判定

    false == 0  //true
    true == 1 //true
    
  • 特殊数字NaN的关系运算

    NaN,不等于任何值,包括自己,不仅不等于自己,还不全等于自己

    NaN == NaN  //false
    

3. 逻辑运算符

逻辑运算符就三个

且 或 非

&& 逻辑与运算 (且)

|| 逻辑或运算 (或)

! 逻辑非运算 (非)

3.1 && 逻辑与的真值表
a && b
a b 结果

都真才真,有假就假

3.2 || 逻辑或,或者的意思
a || b
a b 结果

有真就真,都假才假

3.3 ! 就是'逻辑非', 就是相反的意思
a !a

非真为假,非假为真

3.4 逻辑运算符的顺序

顺序: 非,与 或

true || false && !true || false
// true

4. 赋值运算

= 赋值

+= 简便写法

-= 简便写法

*= 简便写法

/= 简便写法

%= 简便写法

++

--

赋值运算是先计算右边,然后将最终的值赋值给左边

var a = 2;
a += 3;            //这行语句等价于a = a + 3;
console.log(a);     //5

var b = 6;
b /= 3;        //等价于b = b / 3
console.log(b);     //2
4.1 ++ 自增运算符
var a = 10;
a++;            //等价于a=a+1
console.log(e); //11

++可以与输出语句写在一起,++写在变量前和写在变量后不是一个意思

a++ : 先用a的原值参与运算,然后a自己加1;

++a :先给a自己加1,然后用a的新值参与运算

var f = 10;
console.log(f++);   //10 ,先引用原值,然后加1

//等价于
var f= 10;
console.log(f);   //先输出f
f++;              //然后f加1

console.log(++f)
var f= 10;
f++;   
console.log(f);   //先输出f

4.2 -- 自减运算符

与自增运算符相同

5. 运算符综合运算时的计算顺序

贴身的( ++ -- !) →→→ 数学 →→→ 比较 →→→ 逻辑 →→→ 赋值

var a = 5 < 8 && 6 < 10 ;   //true

三目运算这里先不说 到条件循环时我们再分析

你可能感兴趣的:(03.运算符)