Kezdőoldal » Számítástechnika » Programozás » Ismerkedek a javascript-el....

Ismerkedek a javascript-el. Két objektum miért nem egyenlő?

Figyelt kérdés

var a = [1,2,3];

var b = [1,2,3];

alert(a == b);

false-t ír ki.


2018. jún. 28. 13:45
 1/3 anonim ***** válasza:
84%
Más memóriacímre mutatnak.
2018. jún. 28. 14:08
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:
58%

konyhanyelven:


Két fajta változó van, az egyik értéket tárol, a másik pedig referenciát (memóriacímet).


Egyszerű értéktároló típusok pl: egész számok, stringek

(1 === 1, 'abc' === 'abc' stb)


Referencia szerintiek: tömb és az objektumok. Ezeknél ha újat hozol létre, akkor új memóriacímre kerül, és az egyenlőségnél azt vizsgálja, hogy azonos memóriacímen van-e.


De! ez fordítva is igaz, ha egy változónak referencia értéket adsz meg, akkor nem a tömböt teszi bele, hanem hanem csak a memóriacímet. Ezért van az, hogy onnantól "össze vannak kapcsolva", ha az egyiket módosítod a másik is módosul.


Pl:

var a = [1,2,3];

var b = a;

b[0] = 4;


a[0] === 4 // true


még infó: [link]

2018. jún. 28. 14:38
Hasznos számodra ez a válasz?
 3/3 A kérdező kommentje:
Köszi a segítséget.
2018. jún. 28. 16:19

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!