运算符与表达式

判断数据类型

  • typeof
    对于数组、对象和null都返回object
  • instanceOf
    左操作数是一个类,右操作数是标识对象的类。如果左侧的对象是右侧类的实例,则返回true
    instanceof 操作符用来比较两个操作数的构造函数。只有在比较自定义的对象时才有意义,如果用来比较内置类型,将会和 typeof 操作符 一样用处不大
  • Object.prototype.toString

主要表达式

  • this指向函数的执行上下文
  • function定义了函数表达式
  • class定义了类表达式
  • []数组初始化/字面量语法
  • {}对象初始化/字面量语法
  • /ab+c/i正则表达式字面量语法
  • ()分组操作符

左表达式

左边的值是赋值的目标

  • 属性访问符:object.proertyobject["property"]
  • new
  • new.target
  • super
  • ...obj 展开运算符可以将一个可迭代的对象在函数调用的位置展开成为多个参数,或者在数组字面量中展开成多个数组元素

自增和自减

  • A++++A
  • A----A

一元运算符

一元运算符只有一个操作数

  • delete用来删除对象的属性.
  • void表示表达式放弃返回值.
  • typeof用来判断给定对象的类型.
  • +一元加运算符将操作转换为Number类型.
  • -一元减运算符将操作转换为Number类型并取反.
  • ~按位非运算符.
  • !逻辑非运算符.

算术运算符

  • +-*/
  • %余数运算符

关系运算符

比较运算符比较二个操作数并返回基于比较结果的Boolean

  • in用来判断对象是否拥有给定属性.
  • instanceof判断一个对象是否是另一个对象的实例.
  • <小于运算符
  • >大于运算符.
  • <=小于等于运算符.
  • >=大于等于运算符

相等运算符

如果相等,操作符返回的是Boolean(布尔)类型的true,否则是false

  • ==相等 运算符.
  • !=不等 运算符.
  • ===全等 运算符.
  • !==非全等 运算符.

位移运算符

在二进制的基础上对数字进行移动操作

  • <<按位左移运算符。
  • >>按位右移运算符。
  • >>>按位无符号右移运算符

二元逻辑运算符节

逻辑运算符典型的用法是用于boolean(逻辑)值运算, 它们返回boolean值。

  • &&逻辑与
  • ||逻辑或.

条件(三元)运算符

(condition ? ifTrue : ifFalse)把两个结果中其中一个符合运算逻辑的值返回

赋值运算符

将右边的操作数的值分配给左边的操作数,并将其值修改为右边操作数相等的值。

  • *=赋值乘积。/=赋值商。%=赋值求余。+=赋值求和。-=赋值求差。<<=左位移。>>=右位移。>>>=无符号右位移。&=赋值与。^=赋值按位异或。|=赋值或。
  • [a, b] = [1, 2] {a, b} = {a:1, b:2}解构赋值允许你分配数组或者对象变量的属性通过使用规定的语法,其看起来和数组和对象字面量很相似。

你可能感兴趣的:(运算符与表达式)