---
title: "Superfluous Patterns of JavaScript"
description: "ES6 features that eliminate old JavaScript patterns. Practical notes and code examples on Superfluous Patterns of JavaScript."
url: "https://h3manth.com/scribe/superfluous-patterns-of-javascript/"
canonical_url: "https://h3manth.com/scribe/superfluous-patterns-of-javascript/"
markdown_url: "https://h3manth.com/scribe/blog/superfluous-patterns-of-javascript.md"
publishDate: "2015-02-20T00:00:00.000Z"
author: "Hemanth HM"
category: "javascript"
tags: ["javascript","es6"]
word_count: 137
reading_time_minutes: 1
x_markdown_tokens: 295
content_signal: "ai-train=yes, search=yes, ai-input=yes"
---

# Superfluous Patterns of JavaScript

> ES6 features that eliminate old JavaScript patterns. Practical notes and code examples on Superfluous Patterns of JavaScript.

Things we can get rid of with ES6:

## No More String Concatenation with `+`

```javascript
// Old
console.log("Hello " + fname + "." + lname);

// New with template strings
console.log(`Hello ${fname}.${lname}`);
```

## No More `function` Keyword

```javascript
// Old
var greet = function(name) { return "Hello " + name; };

// New with arrow functions
let greet = name => `Hello ${name}`;
```

## No More `arguments` Conversion

```javascript
// Old
[].slice.call(arguments).sort();

// New with rest parameters
let sortArgs = (...args) => args.sort();
```

## No More `||` Default Trick

```javascript
// Old
namespace = namespace || { utils: {}, core: {} };

// New with default parameters
let fn = (namespace = { utils: {}, core: {} }) => '';
```

## No More `var that = this`

Arrow functions preserve lexical `this`!
