Syntax
const obj = { key: value, method() { } };Examples
Creating and Accessing Objects
Basic object creation and property access.
const person = {
name: "Alice",
age: 25,
greet() {
console.log(`Hi, I am ${this.name}`);
}
};
console.log(person.name); // dot notation - "Alice"
console.log(person["age"]); // bracket notation - 25
person.greet(); // "Hi, I am Alice"Modifying and Deleting Properties
Adding, updating, and removing object properties.
const car = { make: "Toyota", model: "Corolla" };
car.year = 2024; // adding a new property
car.model = "Camry"; // updating an existing property
delete car.make; // removing a property
console.log(car); // { model: "Camry", year: 2024 }Bracket Notation for Dynamic Keys
Using bracket notation when the property name is stored in a variable.
const user = { name: "Bob", email: "bob@example.com" };
const field = "email";
console.log(user[field]); // "bob@example.com"
// user.field would look for a literal property named "field" - wrong!Best practices
- Use dot notation when the property name is a fixed, known identifier; use bracket notation when it is dynamic or stored in a variable
- Prefer object shorthand syntax ({ name, age } instead of { name: name, age: age }) when variable names match property names
- Use methods shorthand (greet() { } instead of greet: function() { }) for cleaner object method definitions
- Be careful with delete - it is relatively slow and often better replaced by restructuring data or using Map for frequently changing key sets
At a glance
- Purpose
- Application logic and interaction
- File extension
- .js ยท .mjs
- Runs in
- Browsers and JavaScript runtimes
- Usually used with
- HTML, CSS and Web APIs
Specifications & further reading
Related JavaScript documentation
Arrow Functions
Arrow functions provide a more concise syntax for writing function expressions in JavaScript. Introduced in ES6, they use the => syntax and have some important differences from regular functions, particularly in how they handle the "this" keyword. Arrow functions are especially useful for callbacks, array methods, and short inline functions.Variables: var, let, const
JavaScript has three ways to declare variables. var is the original way, function-scoped and hoisted with a default value of undefined. let, introduced in ES6, is block-scoped and can be reassigned. const is also block-scoped but cannot be reassigned after its initial value is set. Modern JavaScript strongly favors let and const over var.Data Types
JavaScript has seven primitive data types - string, number, boolean, undefined, null, bigint, and symbol - plus the object type, which includes arrays, functions, and plain objects. JavaScript is dynamically typed, meaning a variable can hold any type and that type can change. The typeof operator reports a value's type at runtime.Arithmetic Operators
Arithmetic operators perform mathematical calculations on numbers: addition (+), subtraction (-), multiplication (*), division (/), remainder/modulo (%), and exponentiation (**). The + operator also performs string concatenation when either operand is a string. Increment (++) and decrement (--) adjust a variable by one.
Arrow functions provide a more concise syntax for writing function expressions in JavaScript. Introduced in ES6, they use the => syntax and have some important differences from regular functions, particularly in how they handle the "this" keyword. Arrow functions are especially useful for callbacks, array methods, and short inline functions.Variables: var, let, const
JavaScript has three ways to declare variables. var is the original way, function-scoped and hoisted with a default value of undefined. let, introduced in ES6, is block-scoped and can be reassigned. const is also block-scoped but cannot be reassigned after its initial value is set. Modern JavaScript strongly favors let and const over var.Data Types
JavaScript has seven primitive data types - string, number, boolean, undefined, null, bigint, and symbol - plus the object type, which includes arrays, functions, and plain objects. JavaScript is dynamically typed, meaning a variable can hold any type and that type can change. The typeof operator reports a value's type at runtime.Arithmetic Operators
Arithmetic operators perform mathematical calculations on numbers: addition (+), subtraction (-), multiplication (*), division (/), remainder/modulo (%), and exponentiation (**). The + operator also performs string concatenation when either operand is a string. Increment (++) and decrement (--) adjust a variable by one.