title: What is the difference between a let block statement and an equivalent with statement?
body: <blockquote>
    <h1><em>OBSOLETE</em></h1>
    
    <p>The block version of the let statement was dropped from ES6 before it was finalized, and it has been removed from the browsers that supported it. This question is now only of historic interest.</p>
  </blockquote>
  
  <p>Is there any difference between using an <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let#let_blocks" rel="nofollow">ECMAScript 6 <code>let</code> block statement</a> and  using a <code>with</code> statement with an equivalent object literal?</p>
  
  <h3>using <code>let</code> statement</h3>
  
  <pre><code>var x = 10;
  let (x = x * 10,
       y = x + 5) {
      console.log("x is " + x + ", y is " + y);
  }
  </code></pre>
  
  <h3>using <code>with</code> statement</h3>
  
  <pre><code>var x = 10;
  with ({x: x * 10,
         y: x + 5}) {
      console.log("x is " + x + ", y is " + y);
      // writes "x is 100, y is 15"
  }
  </code></pre>