运算符

运算符

  • 运算符也叫做操作符

    • 通过运算符可以对一个或多个值进行运算,并获取运算结果

    • 比如: typeof 就是运算符,可以来获得一个值的类型

      它会将该值的类型以字符串的形式返回

      Number String boolean Null Undefined Object

      var a=123;

      var result= typeof a;

      console.log(typeof result); 结果返回String

      算术运算符

    • + 可以对两个值进行加法运算,并将结果返回

      • 当对非Number类型的值进行运算时,会将这些值转化为Number,再运算。

        var result= true +1; result结果为2

        任何值和NaN做运算都得NaN

        result= NaN+2;

      • 如果对两个字符串进行加法运算,则会做拼串,会将两个字符串拼接为一个字符串,并返回

        ​ var a=“123”+“234”; a的值为123234

        注意 :任何值和字符串做加法运算,都会先转换为字符串

    • -

    • *

    • /

    • % 取模运算(取余数)

      • var result=9%3; 返回0
      • var result=9%5; 返回4

    一元运算符

    • 只需要一个操作数

      • + 正号 正号不会对数字产生任何影响

      • - 负号 负号可以对数字进行负号得取反

      • 对于非Number类型得值

        • 它会先转换为Number再运算

        • 可以对一个其他数据类型使用+,来将其转换为Number,它得原理和Number()函数一样

          • var a="18";

          a= +a; a的值变为18,Number类型的

          • var result=1+ +"2"+3;

            console.log("result"+result); 结果为6

    自增和自减

    • 自增++

      • 通过自增可以使变量在自身的基础上增加1

      • 自增分为两种 后++(a++)和前++(++a)

        • 无论是a++还是++a,都会立即使原变量的值自增1

        • 不同的是a++和++a的值不同

          • a++的值等于原变量的值(自增前的值)

            var d=20;

            d=d++; 相当于 var e=d++; d=e;

            console.log(d); d的值为20

          • ++a的值等于新值(自增后的值)

            var d=20;

            var result=d++ + ++d + d; 20+22+22结果为64

    • 自减–

      • 通过自减可以是变量在自身的基础上减1
      • 自减分为两种:后–(a–)和前–(--a)
        • 无论是a–还是–a,都会立即使原变量的值自减1
        • 不同的是a-- 和–a的值不同
          • a-- 是变量的原值(自减前的值)
          • –a 是变量的新值(自减以后的值)

    逻辑运算符

    • ! 非

      • 非运算 就是对一个布尔值进行取反操作 true–>false false -->true

      • 如果取反两次,这个值不会再变

      • 对非布尔值进行取反,会先将该值转换为布尔值,再取反.所以我们可以对一个非布尔类型的值两次求非,将其转换为布尔型

        • var b=10;

          b=!!b; !b为false !!b就变为true

    • && 短路与:只要左边判断出为false就不再判断右边,返回false

      • && 对符号两侧的值进行 与运算
      • 运算规则:
        • 两边只要有一个为false就返回false
        • 只有两个都为true 就返回true
    • || 或

      • 或运算 两个值中只要有一个为true,就返回true
        • 第一个值 为 false,则会检查第二个值
          • false || alert(“456”); 返回456
        • 第一个值 为true就直接返回true
    • && || 与非布尔值的情况,在JS中允许逻辑运算符与非布尔值运算的情况

      • 对于非布尔值进行 与或运算时,会先将其转换为布尔值,然后再运算,并且返回原值

      • 与运算(&&) :找false

        • 如果第一个值为true,则必然返回第二个值
          • var result=13 && 2;
            console.log(result); 返回2
        • 如果第一个值为false,则必然返回第一个值
          • var result=NaN&&13;
            console.log(result); 返回NaN
      • 或运算(||) : 找true

        • 如果第一个值为true,则直接返回第一个值

          • var a=11||22;
            console.log(a); 返回11
        • 如果第一个值为false,则直接返回第二个值,即使两边都为false

          • var a=NaN||null;

            console.log(a); 返回null

    赋值运算符

    • = : 把符号右侧的值付给左侧的变量
    • += : a+=5 --> a=a+5;
    • -=
    • *=
    • %=

    关系运算符

    • >

    • <

    • >=

    • <=

    • 非数值的情况

      • 对于非数值进行比较,会将其转换为数字然后再比较

      • 如果符号两侧的值都是字符串,不会将其转换为数字进行比较,而会分别比较字符串中字符的Unicode编码

        • console.log("11"< "5"); true

          console.log("a"<"b"); true

      • 比较字符编码时,是一位一位进行比较,如果两位一样则比较下一位,所以借助它来对英文排序

        • console.log("abc"<"bcd"); true

          console.log("abc"<"aac"); false

      • 注意: 比较两个字符串型的数字,可能会得到不可预期的结果,所以在比较两个字符串的数字时,一定要转型

        • console.log("1112456"< "5"); true

          console.log(+"1531" < +"5"); //false +可以用来转成Number型

    Unicode编码

    • 在JS中使用Unicode编码 :
      • 在字符串中使用转义字符输入Unicode编码 \u四位编码
        • console.log("\u2620"); 输出 ☠
    • 在网页中使用Unicode编码:
      • &#编码; 这里的编码需要的是10进制
        • <h1>&#9760</h1>

    相等运算符

    • == 比较两个值是否相等,相等返回true,不等返回false

      • 使用==来比较两个值时,如果值的类型不同,则会自动进行类型转换,将其转换为相同的类型,然后再比较
        • console.log("1" == 1); true
    • != 比较两个值是否不等,不等返回true 否则返回false

      • 使用!= 来做不相等运算,不相等也会对变量进行自动的类型转换
        • console.log("1"!= 1); false
    • === 全等 用来判断两个值是否全等,

      • 它与相等类似,不同的是它不能自动进行类型转换,如果两个值的类型不同,直接返回false

        • console.log("123" === 123); false

        console.log(null === undefined); false

    • !== 不全等 用来判断两个值是否不全等,

      • 和不等类似,不同的是它不能进行自动类型转换,如果俩个值的类型不同,直接返回true
        • console.log( "123" !== 123); true

    条件运算符(三元运算符)

    • 语法 : 条件表达式?语句1:语句2;

    • 执行的流程:

      • 条件运算符在执行时,首先对条件表达式进行求值。如果该值为true,则执行语句1,并返回执行结果,如果为false,则执行语句2,并返回执行结果

        • var max=a>b?a:b;

          var max=a>b ?(a>c ? a:c) :(b>c ? b:c); 不推荐这样写,不方便阅读

    运算符的优先级

    • , 运算符 : 使用 , 可以分割多个语句一般可以在声明多个变量时使用
      • var a,b,c; 声明多个变量
      • var a=1, b=2,c=3; 声明且赋值
    • 在JS中有一个运算符优先级的表
      在这里插入图片描述
      • var result= 1 || 2 && 3; result的结果为1。 先2&&3为3 再1||3为1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值