how about...<p><pre><code>    return myArray.map(item =&gt; `I am ${item}, yo!`);
</code></pre>
vs<p><pre><code>    return myArray.map(function(item){
      return &#x27;I am &#x27; + item + &#x27;, yo!&#x27;;
    });
</code></pre>
There are a lot of one liners that are much more composable in the fat-arrow syntax.  The default returns takes a lot of it out, and makes it simpler the simpler it starts.<p>Beyond this, the above also uses templates, which you can even create custom processors for templates...<p><pre><code>    var result = await sql`
        SELECT *
        FROM
          a
        WHERE
          a.foo = ${bar}
    `
</code></pre>
You can create an sql processor that turns that query as a template into a parameterized query for the database, that returns a promise, which inside an async function can be awaited directly...  I wrote a few libraries that did just that to make using sql, bigtable (azure tables), queues and other pieces really easy to use... With that I was able to write data migration scripts with ease... it was really awesome to see.<p>Your second example is only if there&#x27;s no default export... the local name doesn&#x27;t have to match the name of the module, also modules can be `foo.bar` or `foo_bar` or `foo-bar` which can&#x27;t be a single value within the script... so it creates a disconnect there, requiring the localized in-script name.