Skip to content

Cum sa lucrezi cu obiecte in JavaScript

DodaTech Updated 2025-01-15 2 min read

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 ca 0

Common Mistakes

  1. A muta obiecte accidental -- const b = a nu copiaza, ci creeaza o referinta
  2. A uita sa verifici obiecte goale -- Object.keys(obj).length === 0 verifica daca un obiect este gol
  3. A folosi || in loc de ?? -- || trateaza 0 si '' ca falsy, ?? doar null/undefined
  4. A incerca sa destructurezi null sau undefined -- const { x } = null arunca TypeError
  5. A uita spread-ul pentru copiere adanca -- spread-ul copiazla un nivel; obiectele imbricate raman referinte

FAQ

### Ce diferenta este intre spread si Object.assign()?

Ambele copiaza proprietati la suprafata. Spread-ul este mai scurt si mai citibil. Object.assign() modifica obiectul tinta in plus.

Cum fac o copie adanca a unui obiect?

Foloseste structuredClone(obj) sau JSON.parse(JSON.stringify(obj)). Atentie: JSON.stringify pierde functii, undefined si simboluri.

Cand se foloseste optional chaining?

De fiecare data cand accesezi proprietati care ar putea fi null sau undefined, de exemplu raspunsuri API sau configurari optionale.

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