Reverse a String in JavaScript or Node.js

There are situations when you want to reverse a given string value. This tutorial shows you how to reverse a string from a given value.

Node.js Series Overview

  1. Check if a Value is a Symbol in JavaScript or Node.js (Coming soon)
  1. Detect if Running on Linux (Coming soon)
  2. Detect if Running on macOS (Coming soon)
  3. Detect if Running on Windows (Coming soon)
  4. Check if Running on 64bit or 32bit Platform (Coming soon)
  1. How to Download a File (Coming soon)

Reverse a String in JavaScript

JavaScript doesn’t have a native Str#reverse method. Yet, you can use the existing methods to build your own method to reverse a string.

Creating the reverse string requires you to split an existing string into an array of its characters. JavaScript’s array class comes with a reverse method allowing you to reverse the order of the characters. Then you must join the items in the array back to a string value:

/**
 * Returns the reverse of the given string `value`.
 * 
 * @param {String} value
 * 
 * @returns {String}
 */
function reverse(value) {  
  return Array.from(
    String(value || '')
  ).reverse().join('')
}

Then use the created reverse function like this:

reverse('Super')  
// 'repuS'

reverse('cool 🥳')  
// '🥳 looc'

reverse(null)  
// ''

reverse()  
// ''

Notice: we’re using Array.from(<string-value>) to split a given string into a list of characters. The reason is: Array.from(<string-value>) supports UTF-16 characters, like emojis, which then creates a character for each emoji.

Be careful when using „string.split('')“

Be careful when using string.split('') to split the given string into its characters. The String#split method doesn’t handle UTF-16 characters like emojis. The list of characters would then lose the emojis as individual characters. That’s the reason we recommend using Array.from() to create an array of characters from a given string.

Use the @supercharge/strings Package

I’m the maintainer of the @supercharge/strings package providing convenient string utilities. It provides a useful Str#reverse() method returning the reversed string value. It also provides solid emoji and UTF-16 character handling:

const Str = require('@supercharge/strings')

Str('Super').reverse().get  
// 'repuS'

Str('cool 🥳').reverse().get  
// '🥳 looc'

Str(null).reverse().get()  
// ''

Str().reverse().get()  
// ''

That’s it!


Mentioned Resources

Explore the Library

Find interesting tutorials and solutions for your problems.