 So in this module, we will spend some time on strings and then we will talk about the undefined state also. Now you will be wondering what is undefined, well it will become clear. So let's look at the module coverage, you can see that we have quite a few topics in this module. So this is an important module and it will set the pace for the understanding for the upcoming next modules. So let's go into more details and let's look at some very exciting and interesting code which we will be discussing in this module. So working with the strings, strings are another basic data type available in JavaScript. They consist of one maybe actually technically zero or more characters surrounded by quotation marks. The following are the examples of the strings. So this is a string, these are all strings. The last example in the preceding list requires some explanation. Why explanation? Because you see that over here we have this and this double quotes and along we have single quotes also. The same is true elsewhere also. Strings are sounded by either single or double quotation marks. Strings enclosed in single quotation marks can contain double quotation marks. Likewise, a string enclosed in double quotation marks like the ones you see in the preceding example can contain single quotation marks. So basically if the string is sounded by one type of quotation marks, you can use another type within it. Here are the examples. So we have double and then we have single and we have double outside. Okay. Double outside and we have single inside. All right. So escaping the quotation marks and other escape characters. Now what if I don't want to work like this? If you use the same style of quotation marks both within the string and to enclose the string, the quotation marks must be escaped so that they won't be interpreted by the JavaScript engine. A single backslash character escapes the quotation mark as you can see over here. This single backslash character, this over here. Okay, this over here also. I've already encircled it. Other escape characters, JavaScript enables other characters to be represented with specific escape sequences that can appear within a string table or this is shown over here. This table I was referring to. I have this backscape and tab. This we'll discuss. Okay, discuss also and then we have the carriage return already discussed and so on. So let's look at some more interesting stuff. So using the escape sequences within the script section plays the following line of the JavaScript. This line I'm referring to view the page in a browser. It will look like this. You can see over here. Notice that the tab characters don't show through because the browser interprets HTML and not the tab characters. This not by the interpreter. Interpreter doesn't work. Doesn't displace it. This rather contrived example shows escape sequences in action. In the code, the word hello is followed by two tabs represented by their escape sequences. Okay, these are the sequences. These are the escape sequences I was referring to. All right, followed by an escape double quote and then the word hello followed by another escape double quote. This is a double code, double code, double code. Okay, and followed by the word goodbye to see that we are able to generate what we were looking at what we were interested in. And there is no double quote over here and there is no double quote over here. Okay, now let's look at string methods and properties. It's a quite a comprehensive list of things we'll be discussing. Okay, so the length property on a string object gives the length of a string, length of a string, not including the enclosing quotation marks. The length property can be called directly on a string literal as you can see over here. However, it's much more common to call the length property on a variable on a variable like this over here like this. Both examples give the same result. This and this they give the same result. Some commonly used string methods besides substring includes slice substring concatenate to uppercase to lowercase and the pattern matching methods of match search and so on. The slice and substring methods return string values based on another string, except two arguments, the beginning position and the optional end position. Here are the examples. So here are the examples I was just referring to. A subtle difference between slice and substring is how they handle arguments with negative values. The substring method will convert any negative value to zero, while slice will treat negative arguments as the starting point from the end of the string counting backwards. I believe you understand this. The substring method also accept two arguments. The first is the beginning position to return and in contrast to substrings or slice, the second argument is the number of correctors to return, not the stopping position. Therefore, the code examples for substring or slice work a little differently, as you can see over here over here, we have these numbers over here also. Okay, so I think this should be clear. The concatenate method concatenates two strings together. It concatenates the two strings together. Where it is happening, you can see it over here. Okay, it will concatenate concatenate join the strings. And finally, the uppercase and lowercase method and to local uppercase and to local lowercase, convert a string to all uppercase or all lowercase values. Okay, we see all uppercase and all lowercase. Okay, we see that there are quite a few functions which are available. And finally, Boolean null and what what is the difference between Boolean null and undefined. Now try to understand. We don't work with Boolean in the same way that we work with strings and numbers. You can define and use a Boolean variable, but typically you just use expressions that evaluate to a Boolean value. Boolean have two values. Of course, you know true and false. You rarely set variables as such. Rather, you use Boolean expressions with tests such as if then else statement, as you can see over here, this example over here. Okay. And null is another special data type in JavaScript as it is in most languages. Null is simply nothing. It represents and evaluates to false when a value is null. It is something and contain nothing is nothing and contain nothing. However, don't confuse this nothingness with the being empty. Okay. Null is nothing. Okay. And it is not empty. Right. Understand this. For example, defining a variable and setting its value to an empty string looks like this. This is empty. Okay. So undefined is a state sometimes used like a value to represent a variable that hasn't yet contained a value yet contains no value. This state is different from null, although both null and undefined can evaluate the same way. Okay. But of course, you will learn how to distinguish between them. So that is all I have for this module.