JavaScript Lesson 3: Data Types
JavaScript has 8 data types. The 6 primitive ones you use every day are: string, number, boolean, undefined, null, and symbol.
The Main Types
// String — text
const name = "Alice";
const greeting = 'Hello World';
const template = `Hi, ${name}!`;
// Number — integers AND decimals (no separate float)
const age = 25;
const price = 9.99;
const negative = -100;
// Boolean — true or false
const isLoggedIn = true;
const hasError = false;
// Undefined — variable declared but no value assigned
let score;
console.log(score); // undefined
// Null — intentional absence of value
let user = null; // "there is no user"
// Symbol — unique identifier (advanced, rarely used)
const id = Symbol("id");
typeof — Check the Type
console.log(typeof "hello"); // "string"
console.log(typeof 42); // "number"
console.log(typeof true); // "boolean"
console.log(typeof undefined); // "undefined"
console.log(typeof null); // "object" (this is a JS bug!)
console.log(typeof {}); // "object"
console.log(typeof []); // "object"
console.log(typeof function(){}); // "function"
Type Coercion — JS’s Quirky Behavior
// JS automatically converts types (sometimes surprising!)
console.log("5" + 3); // "53" (string!)
console.log("5" - 3); // 2 (number)
console.log("5" * 2); // 10 (number)
// Explicit conversion
console.log(Number("42")); // 42
console.log(String(100)); // "100"
console.log(Boolean(0)); // false
console.log(Boolean("hello")); // true
console.log(Boolean("")); // false
// Falsy values (these are false in conditions):
// false, 0, "", null, undefined, NaN
🏋️ Practice Task
Open the browser console. Test typeof on at least 5 different values. Then try these: typeof null (notice the bug!), Number(“abc”) (what do you get?), Boolean(0) vs Boolean(1). Write down your observations.
💡 Hint: NaN means “Not a Number” — it appears when number conversion fails like Number(“abc”).