title: What is difference between : and :: and ::: in Javascript grammar
body: <p>In the <a href="http://www.ecma-international.org/ecma-262/5.1/#sec-A.1">ECMAScript grammar specification</a> for Javascript, there are blocks defined with a double colon like this:</p>
  
  <pre><code>Literal ::
      NullLiteral
      BooleanLiteral
      NumericLiteral
      StringLiteral
      RegularExpressionLiteral
  </code></pre>
  
  <p>And blocks defined with a single colon like this:</p>
  
  <pre><code>PrimaryExpression :
      this
      Identifier
      Literal
      ArrayLiteral
      ObjectLiteral
      ( Expression )
  </code></pre>
  
  <p>And, even blocks with a triple colon:</p>
  
  <pre><code>uriCharacter :::
      uriReserved
      uriUnescaped
      uriEscaped
  </code></pre>
  
  <p>What is the difference between the single and double and triple colons?</p>