Cum sa lucrezi cu obiecte in JavaScript
In this tutorial, you'll learn about Cum sa lucrezi cu obiecte in JavaScript. We cover key concepts, practical examples, and best practices.
Obiectele in JavaScript stocheaza date in perechi cheie-valoare. Acest ghid iti arata cum sa accesezi, copiezi si transformi obiecte folosind metode moderne.
Quick Fix
1. Accesarea cheilor si valorilor
Foloseste Object.keys(), Object.values() si Object.entries():
const user = { name: 'Ion', age: 30, city: 'Bucuresti' };
console.log(Object.keys(user));
console.log(Object.values(user));
console.log(Object.entries(user));
['name', 'age', 'city']
['Ion', 30, 'Bucuresti']
[['name', 'Ion'], ['age', 30], ['city', 'Bucuresti']]
2. Spread operator pentru copiere
Spread operator (...) copie proprietatile unui obiect:
const user = { name: 'Ana', age: 25 };
const updatedUser = { ...user, age: 26, city: 'Cluj' };
console.log(updatedUser);
{ name: 'Ana', age: 26, city: 'Cluj' }
Proprietatile din dreapta suprascriu pe cele din stanga.
3. Destructuring pentru extragere
Destructuring extrage proprietati direct in variabile:
const product = { name: 'Laptop', price: 4000, inStock: true };
const { name, price } = product;
console.log(name, price);
Laptop 4000
Poti redenumi variabilele si seta valori implicite:
const { name: productName, category = 'General' } = product;
console.log(productName, category);
Laptop General
4. Optional chaining pentru acces sigur
Operatorul ?. previne erorile la accesarea proprietatilor inexistente:
const user = { profile: { name: 'Ion' } };
console.log(user?.profile?.name);
console.log(user?.address?.city);
Ion
undefined
5. Nullish coalescing pentru valori implicite
Operatorul ?? ofera o valoare implicita doar cand cea originala este null sau undefined:
const config = { timeout: 0, retries: null };
const timeout = config.timeout ?? 3000;
const retries = config.retries ?? 3;
console.log(timeout, retries);
0 3
Prevention
- Nu muta obiecte direct -- foloseste spread sau
Object.assign()pentru copiere - Verifica existenta proprietatilor cu
?.inlantuit - Foloseste
??in loc de||pentru valori implicite, pentru a pastra valorile valide ca0
Common Mistakes
- A muta obiecte accidental --
const b = anu copiaza, ci creeaza o referinta - A uita sa verifici obiecte goale --
Object.keys(obj).length === 0verifica daca un obiect este gol - A folosi
||in loc de??--||trateaza0si''ca falsy,??doarnull/undefined - A incerca sa destructurezi
nullsauundefined--const { x } = nullarunca TypeError - A uita spread-ul pentru copiere adanca -- spread-ul copiazla un nivel; obiectele imbricate raman referinte
FAQ
Construit de dezvoltatorii Doda Browser, DodaZIP si Durga Antivirus Pro. Instrumentele DodaTech se integreaza perfect cu JavaScript pentru productivitate si securitate sporite.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro