- Overview
- Transcript
5.2 Template Literals
JavaScript now features native templating in the form of template literals, which are a special type of string that can contain expressions. We can also use a slightly more advanced template called a tagged template. Let’s look at both of these features in this lesson.
Syntax
${}
1.Introduction2 lessons, 07:42
1.1Introduction02:12
1.2Setup05:30
2.Language Fundamentals8 lessons, 1:00:53
2.1Variables06:33
2.2Data Types11:28
2.3Arithmetic, Assignment, and Comparison Operators10:24
2.4Unary, Logical, Comma, and Spread Operators09:02
2.5Operator Precedence03:50
2.6Reserved Words04:17
2.7Strict Mode04:34
2.8Functions10:45
3.Data Structures5 lessons, 22:52
3.1Arrays04:29
3.2Objects04:30
3.3Sets04:57
3.4Maps04:21
3.5Weak Maps and Weak Sets04:35
4.Controlling Program Execution7 lessons, 37:06
4.1Conditionals07:49
4.2Switch Statements04:41
4.3The For Loop06:39
4.4The `for .. in` Loop05:17
4.5The `for .. of` Loop04:02
4.6Iterators05:03
4.7While Loops03:35
5.Using JavaScript13 lessons, 1:44:36
5.1Working With Strings09:32
5.2Template Literals05:46
5.3Working With Numbers06:57
5.4Working With Arrays12:53
5.5Iterating and Transforming Arrays07:33
5.6Working With the Object Type13:55
5.7Object Literal Extensions06:45
5.8Working With Object Instances06:45
5.9Getters and Setters05:00
5.10Custom Objects11:28
5.11The `Math` API04:54
5.12Working With Dates and Times08:10
5.13The `Array` Constructor04:58
6.Functions8 lessons, 56:07
6.1The `this` Object06:15
6.2Working With Functions10:11
6.3Scope07:37
6.4Arrow Functions06:59
6.5Generator Functions08:13
6.6Closures05:00
6.7Prototypes06:26
6.8Default and Rest Parameters05:26
7.Miscellaneous6 lessons, 52:39
7.1Destructuring Assignments08:09
7.2AJAX08:30
7.3Regular Expressions10:51
7.4More About Regular Expressions08:38
7.5Classes06:48
7.6ES Modules09:43
8.Working With the DOM6 lessons, 37:39
8.1Selecting HTML Elements05:02
8.2Manipulating HTML Elements07:40
8.3DOM Traversal05:25
8.4Adding and Removing Elements04:45
8.5Creating Elements and Other Nodes04:39
8.6DOM Events10:08
9.Web APIs4 lessons, 17:41
9.1The Selector API03:03
9.2Geolocation05:29
9.3Web Storage05:24
9.4Web Workers03:45
10.Asynchronous JavaScript5 lessons, 26:23
10.1Promises09:52
10.2Promise Chaining05:11
10.3The async Keyword03:21
10.4The await Keyword04:04
10.5More About async and await03:55
11.Conclusion1 lesson, 00:43
11.1Conclusion00:43
5.2 Template Literals
Hi folks. In this lesson we're going to look at another type of string. Template literals are a fairly new type of string literal which were introduced in ES2015. They support multiline strings and expression interpolation, which basically means replacing tokens within a string with values. Let's take a look. To create a template literal, we use backticks. So far, this is just like a regular string in every way. So, one thing we can do with template literals is include line breaks inside them, without using the new line character. So that is equally valid. In template literals, all characters, including white space, are significant. This isn't groundbreaking, but it does mean that we can create strings that include line breaks without having to use escape characters. The above code example is much more readable than the escaped alternatives, which would look something like this. Another feature of string literals is interpolation with data. We can evaluate expressions inside the string. The syntax for this is the dollar character, followed by the expression within curly brackets. The tokens inside the curly brackets are replaced when the template is evaluated at run time. Because template literals have access to variables and objects in our code, they should be handled carefully and must not be constructed by untrusted users. And let's just check the output in the browser. We aren't limited to simple variable substitution either, we can use functions inside the tokens if we wish. One of the most powerful features of template literals are tagged template strings. These strings are tagged with a function name. And this allows the function to be called and passed all of the different parts of the string when it is interpolated, for full control of how the string is constructed. So first of all, let's define a new function. When the function is invoked, it will be passed an array of all of the regular string parts of the template literal, as the first argument. And then a series of additional arguments fit each of the tokens within the template. Notice how we use the spread operator, which we learned about earlier in the course, to collapse all of the remaining arguments after the first one, into a single array called values. So now we can tag a template literal with our function by prepending the name of the function to the template string. If we use a similar template string as the previous example, the tagging function will be passed an array containing four items as the first argument and an array of three items as the values parameter. In this case, we can just build the same string that we were building before. So the function that we defined, which we tagged the template literal with, should return the value of the evaluated string. We can use the function to make any kind of transformation to the string that we want. For example, we could swap the order of the tokens and now lets check the output in our browser. This time, the order of the strings and tokens is completely different. So in this lesson, we learned about template literals. We saw that we need to use backticks instead of single or double quotes to define the template literal. And we saw that template literals are just another form of string literal with some extra powers. We saw that we can create multiline strings without explicit newline characters and that we can perform simple token substitution. We also saw that tagging template literals with a function is a powerful way to handle token substitution and gives us full control over the final form of the string. In the next lesson, we'll look at working with numbers in JavaScript. Thanks for watching.