JavaScript 表达式 Expression

Expressions

  • Member

    • 返回 Reference 类型

      • Object
      • Key

      delete、assign 才能体现出引用的特点

    • a.b

    • a[b] (顺便提一下 上周在项目里面想写一个函数动态获取对象的属性,上网查了资料,用的就是这个)

    • foo_string_

      • var name = 'world'
        function foo() {
        	// 这里是能够拿到 arguments 的
        	console.log(arguments)
        }
        
    • super[‘b’]

    • new.target

      • function foo() {
        	console.log(new.target)
        }
        foo()	// undefined
        
        function bar() {
        	console.log(this)
        }
        var fackObject = {}
        Object.setPrototypeOf(fackObject, bar.prototype)
        fackObject.constructor = bar
        bar.apply(fackObject)
        
    • new Foo()

  • new Foo

  • Call

    • foo()

    • super()

    • foo().b

    • foo()[‘b’]

      class foo {
      	constructor() {
      		this.b = 1
      	}
      }
      
      new foo()['b']	//	1
      
    • foo())_abc_

  • LeftHandside && RightHandSide

    等号的左边与等号的右边

    LeftHandside - Runtime -=> Reference

    -Grammar => Left Handside

  • Update

    ​ no line terminator here 不能换行

    • a++

      // 在 chrome 开个 devtools,然后输入的时候,记得 shift + return
      var a = 1, b = 1, c = 1;
      a
      ++
      b
      ++
      c
      ++
      [a, b, c]
      
    • a--

    • ++a

    • —a

  • Unary(不知道怎么翻译,看做一元运算符???)

    delete a.b
    void 0	//	有标准推荐这么写 undefined
    typeof a
    +a
    -a
    ~a
    !a
    await a
    
  • Exponental

    **

  • Mutiplicative

    */%

  • Addative

    - +

  • Shift

    >> << >>>

  • Relationship
    > < >= <= instanceof in

  • Equality

    === !=== == !==

  • Bitwise 位运算

    ^ | ^

  • Logical

    && ||

    短路逻辑 (这个在 React 里面经常用)

    a && b  a为true时,b才会执行
    a || b  a或b为true,a或b才会执行
    
  • Conditional

    ?:

原文地址:https://www.cnblogs.com/ssaylo/p/13092952.html