If we take &quot;Functions&quot; as a baseline, then we have...<p>Floating Functions &#x2F; First class functions (thanks to comments for reminding): Functions that can be passed around as variables. e.g. All functions in Javascript are floating functions.<p><pre><code>    function callback() { ... }
    &#x2F;&#x2F; function assigned to a variable
    var x = callback;
    &#x2F;&#x2F; function is an argument to another function
    doSomething(..., callback)
</code></pre>
Anonymous functions: functions with no name.<p><pre><code>    &#x2F;&#x2F; an anonymous function
    (function() { .... })()

    &#x2F;&#x2F; anonymous function as an argument
    doSomething(..., function() { .... })
</code></pre>
Lambda functions: A style of writing functions without a block, where the function and return value are expressed as one single expression without the usage of a block or explicit returns.<p><pre><code>    employee =&gt; employee.name
</code></pre>
Closures: When a function references a variable outside its scope, and that &quot;frees&quot; the variable from its normal lifetime, thus creating a &quot;closure&quot; between the function and the now-free variable.<p><pre><code>    function a() {
      var x = 1;
      return function() {
        &#x2F;&#x2F; here a closure is created
        &#x2F;&#x2F; now &quot;x&quot; outlives its lifetime and
        &#x2F;&#x2F; becomes a free variable
        return x + 1;
      }
    }</code></pre>