What is an Operator?
An OPERATOR is a SYMBOL that represent an OPERATION to be taken on one or more VALUES
Operators can be represented by one or more characters.
e.g.
+
,
,*
,
,&&
Types of Operators

Unary Operators
 One operator with one value

Binary Operators
 One operator with two values
 Arithmetic Operators
 Logical Operators
 Comparison Operators
 Assignment Operators

Trinary Operators
 One operator with three values
 The Ternary Operator
The Unary +
The +
operator can be used on a single value to convert that value into a number.
+'33' // => 33
+'0' // => 0
+'' // => 0
+' ' // => 0
+'cheese' // => NaN
typeof
typeof
is a unary operator that returns the type of the operand
typeof function() {...} // => 'function'
typeof "Hello, world!" // => 'string'
typeof [1, 2, 3, "red"] // => 'object'
typeof unassignedVariable // => 'undefined'
typeof false // => 'boolean'
typeof null // => 'object'
Increment and Decrement
Increment and decrement change their variable operand.

++
increment the variable by one 

decrement the variable by one
let myNumber = 3;
myNumber++
console.log(myNumber); // => 4
myNumber
console.log(myNumber); // => 3
"cheese"++ // => NaN
NOTE: Increment and decrement only work on variables which have a Number value.
Arithmetic Operators
Accept two number values and perform an operation on them.
Returns a NEW number as a result.

+
Addition 

Subtraction 
*
Multiplication 
/
Division 
%
Modulus 
**
Exponent
2 + 1 // => 3
2  1 // => 1
2 * 2 // => 4
6 / 2 // => 3
6 % 3 // => 0
5 ** 2 // => 25
Lab: Arithmetic
Open a terminal and start node
, or create a new JavaScript file.
Determine answers to the following questions using arithmetic operators.
 Does JavaScript follow order of operations when parsing equations?
 What happens when you try to add a string number (e.g.
"12"
) to a number?  What happens when you try and subtract a string number from a number?
 What happens when you perform arithmetic operations on strings?
 Addition?
 Subtraction?
 Multiplication?
 Division?
 Can you perform operations on
NaN
?
Logical Operators
Evaluate two expressions and return a boolean

&&
and; returnstrue
if BOTH sides are considered truthy 

or; returnstrue
if EITHER side is considered truthy 
!
not; inverts the result of the preceding expression
'dog' && 'cat' // => 'cat'
null && 'cat' // => false
'dog'  'cat' // => 'dog'
undefined  'cat' // => 'cat'
!true // => false
!(7 < 5) // => true
Comparison Operators
Compare two values and returns a boolean

>
greater than 
<
less than 
>=
greater than or equal to 
<=
less than or equal to
5 > 3 // => true
5 < 3 // => false
5 >= 3 // => true
5 <= 5 // => true
Equality Operators

==
equal to 
===
identical 
!=
not equal 
!==
not identical
5 == '5' // => true
true == '1' // => true
5 === '5' // => false
true === '1' // => false
'cat' != 'dog' // => true
'cat' !== 'cat' // => false
Equals vs. Identity
There is a difference between the double equals ==
and triple equals ===
.
The double equals will try and coerce the operands so that are comparable.
The triple equals will only perform a comparison on the values as they are.
When comparing two values you should always use the triple equals.
Lab: Compare and Contrast
Open up a node environment in your terminal, and let's play around with some comparison operators.
 What happens when you compare two strings with greater than
>
? Did it result in the value you expected?
 How are they being compared?
 Find a difference between the double equals
==
and triple equals===
Assignment Operators
Modify an existing value by some other value.

=
sets the variable on the left equal to the value on the right 
+=
adds the value to the right to the variable on the left 
=
subtracts the value to the right from the variable on the left
let x = 7
let y = 3
x += 1 // x => 8
y += 3 // y => 6
x += y // x => 14
y = x // x => 8
Lab: Assignment
Open a terminal and start node
, or create a new JavaScript file.
 Assign a variable
x
using thelet
keyword to a numerical value.  Assign a variable
y
using theconst
keyword to a numerical value.  Add a value to x using the
+=
operator. What's the value ofx
?  Add a value to y using the
+=
operator. Did you get the value you expected?  Create a variable named
string
that is a string. Add a value to
string
using+=
, what is the value ofstring
?  What is the value of
string
if you use=
instead?
 Add a value to
The Ternary Operator
The ternary operator is the only trinary operator in JavaScript
expression ? valueOne : valueTwo
// If the expression evaluates to true returns valueOne
// otherwise returns valueTwo
let isAllowed = true;
return isAllowed ? 'You are allowed' : 'You are denied';
// => 'You are allowed'