03_JavaScript常见运算符

导读:本篇文章讲解 03_JavaScript常见运算符,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

认识运算符

  • 在小学的时候我们就学习了各种运算符,比如*加号 +、乘号 、减号 – 、除号/
  • 几乎所有的编程语言都有各种各样的运算符(也被称之为操作符,operators)
  • 计算机最基本的操作就是执行运算,执行运算时就需要使用运算符来操作
  • JavaScript按照使用场景的不同将运算符分成了很多种类型
    • 算术运算符/赋值运算符/关系(比较)运算符/逻辑运算符

认识运算元

  • 运算元: 运算符应用的对象
  • 比如说乘法运算 5 * 2,有两个运算元;
  • 左运算元 5 和右运算元 2;
  • 有时候人们也称其为“参数”
  • 如果一个运算符对应的只有一个运算元,那么它是 一元运算符
    • 比如说一元负号运算符 –,它的作用是对数字进行正负转换;
  • 如果一个运算符拥有两个运算元,那么它是 二元运算符
    • 比如 2 + 3

算术运算符

  • 算术运算符用在数学表达式中, 它的使用方式和数学中也是一致的

  • 算术运算符是*对数据进行计算的符号 加号 +、乘号 、减号 – 、除号/、取余%、幂**

  • 取余运算符是 %,尽管它看起来很像百分数,但实际并无关联

    • a % b 的结果是 a 整除 b 的 余数

    • console.log(10 % 3) // 1
      
  • 求幂运算 a ** b 将 a 提升至 a 的 b 次幂。(ES7中的语法,也叫做ES2016)

    • 我们将其表示为 a的b次方

    • console.log(2 ** 3) // 8
      console.log(3 ** 2) // 9
      

赋值运算符

  • 我们使用的 = 其实也是一个运算符,被称之为 赋值运算符

    • 语句 x = value值 value 写入 x 然后返回 x
  • 链式赋值

    • var a, b, c
      a = b = c = 2 + 2
      console.log(a, b, c) // 4 4 4
      
    • 链式赋值从右到左进行计算

    • 首先,对最右边的表达式 2 + 2 求值,然后将其赋给左边的变量:c、b 和 a

    • 最后,所有的变量共享一个值

  • 但是从代码的可读性的角度来说,不推荐这种写法

原地修改

  • 原地修改就是, 我们经常需要对一个变量做运算,并将新的结果存储在这个变量中

    • var num = 10
      num = num + 5
      num = num * 2
      
  • 可以使用运算符 *+= 和 = 来缩写这种表示

  • var num = 10
    num+=5
    num*=2
    
  • 所有算术和位运算符都有简短的**“修改并赋值”运算符**:*=、/= 、+=、-=、%=、**= 等

自增、自减

  • 对一个数进行加一、减一最常见的数学运算符之一

  • 所以,对此有一些专门的运算符:

  • 自增 ++ 将变量加1

  • 自减 – 将变量减1

  • 自增/自减只能应用于变量

  • 将其应用于数值(比如 5++)则会报错

  • ++和–的位置

  • 当运算符置于变量后,被称为**“后置形式”** :counter++

  • 当运算符置于变量前,被称为**“前置形式”**:++counter

  • 两者都做同一件事:将变量 counter 与 1 相加

  • 两者的区别:

    • 如果只是单纯的自增 或者 自减那么没有区别

    • 如果自增或自减表达式本身又在其他表达式中,那么就有区别

      • var counter = 5
        var result = 100 + counter++
        console.log(result) // 结果为105
        var result = 100 + ++counter
        console.log(result) // 结果为106
        
      • 后置形式在其他表达式中 先参与其他表达式的运算 其他运算结束后再进行自身自增或自减的运算

      • 前置形式在其他表达式中 先进行自身自增或自减的运算 自身运算结束后再参与其他表达式的运算

运算符的优先级

  • 运算符放到一起使用时会有一定的优先级
  • 在MDN上给出了所有运算符的优先级(不用去记)
  • https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Operator_Precedence

比较运算符

  • 我们知道,在数学中有很多用于比较大小的运算符,在JavaScript中也有相似的比较
  • **大于 / 小于:**a > b,a < b。
  • **大于等于 / 小于等于:**a >= b,a <= b。
  • **检查两个值的相等:**a == b,请注意双等号 == 表示相等性检查,而单等号 a = b 表示赋值。
  • **检查两个值不相等:**不相等在数学中的符号是 ≠,但在 JavaScript 中写成 a != b
  • 比较运算符的结果都是Boolean类型的

===和==的区别

  • 普通的相等性检查 == 存在一个问题,它不能区分出 0 和 false,或者空字符串和 false这类运算
    • 这是因为在比较不同类型的值时,处于判断符号 == 两侧的值会先被转化为数字
    • 空字符串和 false 也是如此,转化后它们都为数字 0
  • 严格相等运算符 === 在进行比较时不会做任何的类型转换
    • 换句话说,如果a 和b 属于不同的数据类型,那么a === b 不会做任何的类型转换而立刻返回false
  • 同样的,“不相等”符号 != 类似,“严格不相等”表示为 !==

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/120160.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!