Write Cleaner, More Efficient Code: Unveiling JavaScript's Hidden Toolkit
const person = {
name: "Alice",
age: 30
};
// Without destructuring
const name = person.name;
const age = person.age;
console.log(name, age); // Output: Alice 30
// With destructuring
const { name, age } = person;
console.log(name, age); // Output: Alice 30 (same result, but shorter)
Spread operator:
const person = {
name: "Bob",
city: "New York"
};
// Copying an object
const newPerson = { ...person };
newPerson.city = "Los Angeles";
console.log(person); // Output: { name: "Bob", city: "New York" } (original remains unchanged)
console.log(newPerson); // Output: { name: "Bob", city: "Los Angeles" } (modified copy)
// Combining arrays
const numbers1 = [1, 2, 3];
const numbers2 = [4, 5, 6];
const allNumbers = [...numbers1, ...numbers2];
console.log(allNumbers); // Output: [1, 2, 3, 4, 5, 6]
Optional chaining:
const person = {
address: {
street: "Main St",
city: "Seattle"
}
};
// Traditional approach (might cause errors if address is missing)
let street;
if (person && person.address) {
street = person.address.street;
}
console.log(street); // Output: Main St
// Using optional chaining (safer)
const street = person?.address?.street;
console.log(street); // Output: Main St (same result, but avoids potential errors)
// Example with missing property
const missingAddressPerson = {};
const missingStreet = missingAddressPerson?.address?.street;
console.log(missingStreet); // Output: undefined (no errors)
- Without destructuring (using temporary variables):
const person = {
name: "Alice",
age: 30
};
let name, age;
name = person.name;
age = person.age;
console.log(name, age);
- Array indexing (for arrays):
const numbers = [10, 20, 30];
const firstNumber = numbers[0];
const secondNumber = numbers[1];
console.log(firstNumber, secondNumber);
- Object.assign (for copying objects):
const person = {
name: "Bob",
city: "New York"
};
const newPerson = Object.assign({}, person);
newPerson.city = "Los Angeles";
console.log(person); // Output: { name: "Bob", city: "New York" }
console.log(newPerson); // Output: { name: "Bob", city: "Los Angeles" }
- Array concatenation (for combining arrays):
const numbers1 = [1, 2, 3];
const numbers2 = [4, 5, 6];
const allNumbers = numbers1.concat(numbers2);
console.log(allNumbers); // Output: [1, 2, 3, 4, 5, 6]
- Nested checks (error-prone):
const person = {
address: {
street: "Main St",
city: "Seattle"
}
};
let street;
if (person && person.address) {
street = person.address.street;
}
console.log(street);
javascript hidden-features