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");