Lesson Weekend

You can call methods on strings, just like you can with numbers:

> "supercalifragilisticexpialidocious".toUpperCase();
"SUPERCALIFRAGILISTICEXPIALIDOCIOUS"

Or even call the method on a variable assigned to a string:

> var word = "foo";
undefined
> word.concat("bar");
"foobar"

Methods can be chained like this:

> "foo".concat("bar").toUpperCase();
"FOOBAR"

The concat() method (which concatenates, or combines, two strings) returns a string, which then has toUpperCase() called on it. Then, toUpperCase() returns the final result.

By the way, here's a nice shortcut for the concat() method:

> "I love" + " " + "Epicodus";
"I love Epicodus"

Or with variables:

> var sentiment = "I love ";
undefined
> var animal1 = "cats";
undefined
> var animal2 = "dogs";
undefined
> sentiment + animal1;
"I love cats"
> sentiment + animal2;
"I love dogs"

Back to arguments. String methods can take numbers as arguments, too:

> "caterpillar".charAt(5);
"p"

Did you notice something funny about this example? What's the fifth character of the word "caterpillar"? Well, with the way we normally count, "c" is the first letter, and "r" is the fifth. But JavaScript says that the character at the 5th position is "p". That's because computers start counting at zero. So "c" is the zeroth letter, and "r" is the fourth.