DEV Community

10 JavaScript string methods you should know

Frugence Fidel on July 12, 2018

This post is originally published to my blog. In this post I will summarize 10 javascript string methods you should at least known according to me...
Collapse
 
itsasine profile image
ItsASine (Kayla) •

repeat exists? :o

I've been doing new Array(52).join('a'); to make a string of 52 as, but I could have just used 'a'.repeat(52)... now I need to make a little commit to update that.

The other day I even ranted about how nice Python's 'a' * 52 would have been.

Collapse
 
frugencefidel profile image
Frugence Fidel • • Edited

They are not same

 const first = new Array(2).join('a');
 console.log(first); // 'a'

 const second = 'a'.repeat(2);
 console.log(second); // 'aa'

 // new Array(52).join('a') will not print 52 a's, print 51 a's
 const aLength = new Array(52).join('a').length;
 console.log(aLength); // 51
Collapse
 
itsasine profile image
ItsASine (Kayla) • • Edited

Oops, you're right! Typo on my part :) For the sake of my E2E tests, I actually think repeat would be easier to read.

it('displays an error for too many characters', function() {
    relevantPage.middleInitial.sendKeys('a'.repeat(2)); // clearly shows that 2 is considered too many

    expect(relevantPage.middleInitialTooLongMessage.getText()).toEqual('Middle initial is too long');
});
Thread Thread
 
frugencefidel profile image
Frugence Fidel •

Actually repeat is easy to read

If you want to make string of 52 a's with repeat is so easy

  const a = 'a'.repeat(52);
  console.log(a); // "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
  console.log(a.length); // 52
Thread Thread
 
siddharthray profile image
siddharthray •

Array index starts from 0 which means it will print 52 times.

Thread Thread
 
diek profile image
diek •

Yass, and since join acts as 'glue', using 'a' as glue for 52 nothings will print 'a' 51 times. Give it a try ;)

Collapse
 
patrickcole profile image
Patrick Cole •

Great list of methods for Strings. I would just like to highlight that String.startsWith() and String.repeat() are ES2015+ String.endsWith() is ES6+, so polyfill accordingly to support edge cases.

Collapse
 
waldbach profile image
Janne Wolterbeek •

Thanks, was wondering about that!

Collapse
 
kleinetigervk profile image
Lorna Roberts •

Thanks for this!

Collapse
 
dankwansere profile image
Dankwansere •

Very useful, Thanks!

Collapse
 
tetyemez profile image
Tugrul •

Hi, thanks for the update. What about substr() function. Is it necessary when slice() exist?

Collapse
 
jenc profile image
Jen Chan •

I'm not sure whether this one is deprecated or maybe I read that incorrectly...

Collapse
 
frugencefidel profile image
Frugence Fidel • • Edited

substr() is not part of the core JavaScript language and may be removed in the future. Use slice() or substring() instead

Collapse
 
safinghoghabori profile image
Safin Ghoghabori •

Can you tell me real world use case of reapeat() method? Idk why we need it 🤔

Thanks in advance!