# Learn JavaScript - Variables, Strings, Types

 Question Click to View Answer Perform these exercises in the JavaScript console of your favorite web browser. What does the following expression return? ```3 + 2; ``` ```5 ``` 3 and 2 are called operands and + is the operator. What does the following expression return? ```typeof(3); ``` ```"number" ``` There are a handful of data types in JavaScript (number, string, boolean, object, and undefined). Notice that there is only a single data type for numbers, not separate data types for integers and floating point numbers like some other languages. What does the following expression return? ```typeof(3) === typeof(4.32); ``` ```true ``` 3 is a "number" and 4.32 is a "number" as well, so the equality comparison of the types returns true. JavaScript has the same data type for integer and floating point numbers. What does the following expression return? ```5 / 0; ``` ```Infinity ``` Infinity is a very large number in JavaScript that is bigger than the biggest number JavaScript can represent. Technically, division by zero should return undefined, but this is a JavaScript quirk. What does the following expression return? ```3 / "bob"; ``` ```NaN ``` NaN stands for "not a number" and is returned when a mathematical operation cannot yield a numeric result. What does the following expression return? ```NaN === NaN; ``` ```false ``` NaN is not equal to any other value, including itself. What does the following expression return? ```typeof(NaN); ``` ```"number" ``` NaN has a "number" type. What does the following expression return? ```isNaN(NaN); ``` ```true ``` The isNaN method returns false if the argument is a number and true otherwise. isNaN returns true if the argument is NaN. What does the following expression return? ```Math.pow(2, 3); ``` ```8 ``` This expression represents 2 raised to the power of 3. The Math object contains methods to assist with common mathematical operations. Describe how the following expression assigns a variable to a value. ```var first_name = "cindy"; ``` The var keyword is used to declare a variable. In this case the var keyword declares the variable first_name. Additionally, this expression assigns the variable to the value "cindy". What is the value of the hello variable in the following expression? ```var hello; ``` ```undefined ``` When a keyword is declared, but not assigned to any value, its value is undefined. What does the following expression return? ```var y; y === "cool"; ``` ```false ``` The variable y has been declared, but it has not been assigned to anything, so its value is undefined. When undefined is compared with the string "cool" with the === equality operator, the return value is false. What does the following expression return? ```"some" + " person"; ``` ```"some person" ``` "some" and "person" are the operands and + is the operator. When the operands are strings, the + operator performs string concatenation. What does the following expression return? ```> var first = "Bart"; > var last = "Simpson"; > first + " " + last ``` ```"Bart Simpson" ``` In this example, three strings are concatenated. What does the following expression return? ```"cool".length; ``` ```4 ``` The length property of strings returns the number of characters in a string. What does the following expression return? Explain the answer. ```"phat" === "phat"; ``` ```true ``` The === operator considers two strings equal if they both have the same length and the same characters in the same order. What does the following expression return? ```typeof("cats"); ``` ```"string" ``` "string" is one of the fundamental types in the JavaScript language. The other fundamental types are numbers, booleans, objects, and undefined. What does the following expression return? ```3 + "bob" ``` ```"3bob" ``` JavaScript cannot add a number and a string without converting the number to a string first. JavaScript converts 3 to "3" and then concatenates the two strings. 3 can be converted to "3" with this code: String(3); Round the number 4.87 to the nearest integer. ```Math.round(4.87); ``` Divide the number 6 by the string "2" and explain the result. ```6 / "2" // returns 3 ``` JavaScript cannot divide a number by a string, so it first converts the string to a number, and then performs the division. The string "2" can be converted to a number with this code Number("2"); Many programming languages raise exceptions for type mismatches, but JavaScript aggressively converts types instead. What does the following expression return? Explain the result. ```3 * "bob"; ``` ```NaN ``` JavaScript attempts to convert "bob" to a number so multiplication can be performed, but the string "bob" cannot be converted to a number. Number("bob") returns NaN. 3 multiplied by NaN also returns NaN. Declare the variables x and y. ```var x, y; // OR var x; var y; ``` Set the variable hobby to the string "programming". ```var hobby = "programming"; ``` What does the following expression return? ```var sport; sport === undefined ``` ```true ``` A variable that has been declared, but has not been assigned to any value equals undefined. Demonstrate that "brogrammer" has the type "string". ```typeof("brogrammer"); ```