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
2/3 anonim válasza:
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]
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!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!