Operators The operators of JSX are the same to those in JavaScript (ECMA-262 3rd edition) except for the following changes. types of the operands accepted by the operators are more restrictive logical operators (&& ||) return boolean binary ?: operator has been introduced (to cover the use of || in JavaScript to return non-boolean values) introduction of the as operator delete is a statement instead of an operator The table below lists the operators supported by JSX. Table 1. List of Operators by Precedence Operator Returned Type Operand Type(s) (x)[1] typeof x func(...) return type of the function obj.prop typeof obj.prop obj: any object type array[index] Nullable. array: Array. index: number map[key] Nullable. map: Map. key: string x++ x-- typeof x number or int obj instanceof type boolean obj: any object type type: a Class, Interface, or Mixin x as type[2] x as __noconvert__ type[3] type ++x --x typeof x number or int +x -x typeof x number or int ~x int number or int ! x boolean any typeof x string variant x * y x % y number or int[4] number or int x / y number number or int x + y x - y number or int[4] number or int x + y string string x << y x >> y x >>> y int number or int x < y x<= y x > y x >= y boolean number, int, string[5] x in y boolean x: string y: Map. x == y x != y boolean any except variant[5] x & y int number or int x ^ y int number or int x | y int number or int x && y boolean any x || y boolean any x ? y : z typeof y any[6] x ?: y typeof x any[5] x = y typeof x any[7] x op[8]= y typeof x same as op x, y typeof y any grouping operator cast operator cast operator (without run-time type check) int is returned if both operands are int types of x and y should be equal, or either should be convertible to the other types of y and z should be equal, or either should be convertible to the other type of y should be convertible to type of x any of: * / % + - << >> >>> & ^ |