Uses dynamic typing which are associated with values and not variables
Based on objects which are associative arrays (i.e. object.height or object['height'])
Functions are objects as well. (a = functioname). Functions can be invoked by adding brackets which returns the result of the function. (a = functionname()). You can also create functions within functions.