JavaScript运算符

75 阅读3分钟

1.算数运算符

float浮点数

//在编程语言里面进行计算,要先将0.1转换成二进制,0.2转换成二进制
        //二进制+二进制=二进制=>十进制
        console.log(0.1+0.2);  //0.30000000000000004
        var num1=0.1;
        var num2=0.2;
        var str1=num1.toString(2);  //将num1转换成一个二进制的数字
        console.log(str1);
        //在JavaScript中最大值的存储位数是53位
        //溢出
        //0.0001100110011001100110011001100110011001100110011001101
        var str2=num2.toString(2);  //将num2转换成一个二进制的数字
        console.log(str2);
        //0.001100110011001100110011001100110011001100110011001101

2.赋值运算符

3.递增递减运算符

3.1递增运算符

var age=10;
var age1=age++;//先赋值,后自加
console.log(age1);//10
console.log(age);//11

var num=10
var num1=++num;//先自加,后赋值
console.log(num1);//11
console.log(num);//11

var num2=10;
console.log(num2++ +10);//20
console.log(num);//11

3.2递减运算符

var age=20;
age--;//先赋值,后自减
console.log(age);//19
--age;//先自减,后赋值
console.log(age);//18

4.比较运算符

console.log(3 >= 5); //布尔值  false
console.log(10 >= 5);  //true
>=  <=   >  <  ==  !=  ===   !==
console.log(3 == 5);//false
console.log("你好" == "我很好");//false
console.log(18 == 18);//true
console.log(18 == "18");//true
console.log(18 != 18);//false
console.log(15 != 18);//true
=== 不仅要判断数值,还要判断数据类型
console.log(18 === "18");//false
console.log(18 !== "18");//true

5.逻辑运算符

5.1逻辑运算符的使用

 &&与  ||或   !非
如果想要&&结果为true,则&&两边都要为true,如果有一边为false,则结果就为false
console.log(3>8 && 5<10);//false 
console.log(3<5 && 3>2);//true  
在||中,如果想要整体结果为true,||两边只要有一个结果是true就可以
console.log(3>5 || 3>2);//true
console.log(3>5 || 3<2);//false
逻辑非!   not
console.log(!false);//true
console.log(!(3>5));//true

5.2逻辑运算符的逻辑中断

  • 数字&&数字

  • 数字&&字符串

  • 数字 || 数字

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

6.赋值运算符

var num=10;
num+=5;  //num=num+5;
console.log(num);
num-=1;//num=num-1;
num*=1;//num=num*1;
num/=1;//num=num/1;
num%=1;//n
um=num%1;

7.运算符的优先级

7.1优先级

  • 算数运算符、比较运算符、逻辑运算符、赋值运算符
  • 1.括号
  • 2.一元运算符 ++ -- !
  • 3.算数运算符 + - * / %
  • 4.关系运算符 > < >= <= =
  • 5.相等运算符 == != === !==
  • 6.逻辑运算符 && ||
  • 7.赋值运算符 =

7.2实例

//           false          true              true          true
console.log(4 >= 6 || "你好" != "我很好" && !(12*2 == 144) && true);
//先与后或
var a=3 > 5 && 2 < 7 && 3 == 4;
console.log(a);//false
var b= 3 <= 4 || 3 > 1 || 3 !=2;
console.log(b);//true

8.按位运算符

var num1=1; //00000001
var num2=num1<<2;//00000100
console.log(num2);//4
var num3=num1>>2;//00000000(01)被移出去了
console.log(num3);//0
var num4=10;//00001010
var num5=20;//00010100
//&的意思:如果都为1,则为1,如果有一个不为1,则为0
var num6=num4 & num5;
var num7=num4 | num5;
//00011110
console.log(num6);//0
console.log(num7);//30

9.三元运算符

语法结构

表达式1 ? 表达式2 : 表达式3
表达式1如果为true,则返回表达式2,否则返回表达式3

实例

 var num=10;
var num2= num > 10 ? 5:"是的"
console.log(num2);