Operators
 Operator Precedence
 Logical Operators
 The Conditional Operator
 The Nullcoalescing Operator
 The Errorcoalescing Operator
Operator Precedence
Operator precedence in the table below goes from high at the top to low at the bottom. Operators at the same level have the same precedence.
Level  Operators  Associativity 

Call 
() . : ::

Left 
Power 
^

Right 
Unary 
!  try not

Right 
Bitwise 
and or xor >> <<

Left 
Multiplication 
* / // %

Left 
Addition 
+ 

Left 
Comparison 
> >= < <=

Left 
Equality 
== !=

Left 
Logical 
&&  ?? !!

Left 
Conditional 
?

None 
Assignment 
= += =

Right 
Note that conditional expressions using the ternary operator ?
can't be nested. (Checkmate, Satan.)
Logical Operators
The logical operators 
and &&
are shortcircuiting and evaluate the truthiness of their operands.
The value of the logicalOR expression a  b
is the value of the first operand if that operand is truthy, otherwise the value of the second operand.
This means you can use the 
operator to swap in a default value in place of a falsey expression:
var foo = maybe_falsey()  "default";
The value of the logicalAND expresson a && b
is the value of the first operand if that operand is falsey, otherwise the value of the second operand.
This means you can use the &&
operator to conditionally chain a sequence of expressions:
func1() && func2() && func3();
func2()
will only be called if func1()
returns a truthy value; func3()
will only be called if func2()
returns a truthy value. (I can't think of a good reason to use this but I still want to.)
The Conditional Operator
The conditional or ternary operator takes three operands. It looks like this:
var foo = condition ? expr1  expr2;
The value of the expression is expr1
if condition
evaluates as truthy, otherwise expr2
.
The Nullcoalescing Operator
The nullcoalescing operator ??
lets you swap in a default value in place of a null
:
var foo = maybe_null() ?? "default";
The value of the expression a ?? b
is the value of the first operand if that operand is not null
, otherwise the value of the second operand.
The Errorcoalescing Operator
The errorcoalescing operator !!
lets you swap in a default value in place of an error:
var foo = maybe_error() !! "default";
The value of the expression a !! b
is the value of the first operand if that operand is not an $err
, otherwise the value of the second operand.