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
 
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
 
kleinetigervk profile image
Lorna Roberts

Thanks for this!

Collapse
 
dankwansere profile image
Dankwansere

Very useful, Thanks!

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!