Zmienione i niezmienne dane w JavaScript

Zmienione i niezmienne dane w JavaScript

Termin pocielesność oznacza zmienna, pojęcie zmienności można zastosować tylko do obiektów i tablic w JavaScript. Koncepcji MUTABIBABIBABI klient klient klientów klientów prymitywnych, takich jak ciąg, boolean, liczba itp. Podczas gdy niezmienne dane odnoszą się do prymitywnych danych, których stanu nie można zmienić. W tym poście zrozumiemy różnicę między zmiennymi danymi a niezmiennymi danymi za pomocą niektórych przykładów.

Przed kierowaniem w kierunku zmiennych danych lub niezmiennych danych, początkowo musimy wyjaśnić koncepcję przechowywania danych w zmiennych JavaScript. Zmienne w JavaScript są w stanie przechowywać dwa typy wartości prymitywne lub typu odniesienia. Ogółem siedem prymitywnych typów danych jest dostępnych w JavaScript, podczas gdy istnieją trzy typy danych referencyjnych. Główną różnicą między nimi polega na tym, że w pierwotnym typie danych pamięć jest przydzielana w stosie, podczas gdy w danych odniesienia pamięć jest przydzielana w stercie. Krótko mówiąc, prymitywny typ danych jest podstawowym typem danych, podczas gdy typ danych odniesienia jest obiektem złożonym z kilku funkcji, a obiekty te są przekazywane jako odniesienie.

Zmienione dane w JavaScript

Zmienne obiekty mogą być modyfikowane lub zmienione po ich utworzeniu, ale musi pamiętać, że obiekt może mieć dwa odniesie. Tak więc wiele referencji dla jednego obiektu i dwóch obiektów o podobnych cechach to dwie różne rzeczy.

Wdrożenie zmiennych danych w JavaScript

Rozważmy przykład, aby zrozumieć zmienność w JavaScript.

Niech pracownik1 = Nazwa: „Joe Clarke”, wiek: 35, ID: 123, miasto: „London”;
niech pracownik2 = pracownik1;
Niech pracownik3 = nazwa: „Joe Denly”, wiek: 25, ID: 121, miasto: „Birmingham”;
konsola.log („Sprawdź, czy pracownik1 = pracownik2”, pracownik1 === Pracownik2);
konsola.log („Sprawdź, czy pracownik1 = pracownik3”, pracownik1 === Pracownik3);

Utworzyliśmy obiekt nazwany pracownik i przypisaliśmy mu niektóre właściwości, w drugim wierszu utworzono inny obiekt o nazwie Employee2 i przypisaliśmy go pracownikowi, co oznacza, że ​​pracownik2 miałby takie same nieruchomości jak pracownik. Następnie tworzymy innego pracownika i przypisujemy mu różne właściwości. Następnie sprawdziliśmy, czy „pracownik2” ma takie same nieruchomości jak „pracownik”, czy nie.

Dane wyjściowe powyższego kodu będzie:

Zobaczmy teraz, co się stanie, jeśli zmienimy wartość „pracownika 1”, wpłynie to na nieruchomości „pracownika2”? Zmodyfikujmy nasz kod:

Niech pracownik1 = Nazwa: „Joe Clarke”, wiek: 35, ID: 123, miasto: „London”;
niech pracownik2 = pracownik1;
Pracownik 1.name = "Dean Elgar";
konsola.log („Zaktualizowane wartości pracownika 1:”, pracownika 1);
konsola.log („zaktualizowane wartości pracownika2:”, pracownika2);

Zmodyfikujmy poprzedni przykład, na przykład, zmień nazwę pracownika 1 z „Joe Clarke” na „Dean Elgar” i sprawdź, czy wpływa to na nazwę właściwości pracownika2, czy nie.

Dane wyjściowe dla naszego zmodyfikowanego kodu będzie:

Z powyższego wyjścia możemy zobaczyć, że zmiany, które wprowadzamy na własność pracownika1, wpływają również na wartość pracownika2, dzieje się tak, ponieważ pracownik2 został utworzony z odniesieniem pracownika 1.

Niezmienne dane w JavaScript

Niezmienność odnosi się do prymitywnych wartości, takich jak ciąg, lub liczba itp., W JavaScript nie możemy ich zmodyfikować, ale możemy je przekazać za pomocą niektórych nowych wartości.

Wdrożenie niezmiennych danych w JavaScript

Poniższy przykład pomoże ci zrozumieć niezmienne typy danych.

var pracowników1 = „Daniel”;
var employe2 = pracownika1;
konsola.log („Nazwa pierwszego pracownika:”, pracownik 1);
konsola.log („Nazwa drugiego pracownika:”, pracownika2);

Utworzyliśmy zmienną i przypisaliśmy jej wartość. Następnie utworzyliśmy inną zmienną i przypisaliśmy ją pierwszą zmienną, jak wyróżniono na poniższym zrzucie ekranu.

Teraz zbadajmy dane wyjściowe, zobaczysz, że obie zmienne pokazują to samo wyjście:

Teraz zmień wartość „Employee2” i obserwuj, czy zmieni wartość „pracownika 1” lub wartość dla pierwszej zmiennej pozostanie taka sama:

var pracowników1 = „Daniel”;
var employe2 = pracownika1;
konsola.log („Nazwa pierwszego pracownika:”, pracownik 1);
konsola.log („Nazwa drugiego pracownika:”, pracownika2);
var employe2 = „Bryn”;
konsola.dziennik („Zaktualizowana nazwa 1. pracownika:”, pracownik 1);
konsola.dziennik („Zaktualizowana nazwa 2. pracownika:”, pracownika2);

Przypisujemy „Bryn” do drugiej zmiennej:

Teraz obserwuj wyjście:

Przykład wyjaśnia, że ​​kiedy zmieniliśmy wartość pracownika2, zaobserwowaliśmy, że zmiana nazwy drugiej zmiennej nie wpływa na wartość pierwszej zmiennej, co oznacza, że ​​JavaScript traktuje obie z nich jako oddzielne zmienne, i faktycznie przypisuje wartość do tego Druga zmienna.

Rozważymy inny przykład, aby dowiedzieć się niezmiennych danych w JavaScript.

var str = "hello";
konsola.log („oryginalny ciąg:”, str);
str.ToupperCase ();
konsola.log („String After ToupperCase Method:”, str);

Wzięliśmy zmienną ciągów i przypisaliśmy ją wartość „Hello”, a następnie użyliśmy metody string „Toupper”. Po uruchomieniu programu zaobserwowaliśmy, że nie zmieniło to ciągu, ponieważ w ciąży JavaScript są niezmiennymi typami danych i nie można ich modyfikować po utworzeniu.

Dane wyjściowe powyżej podanego kodu będzie:

Możesz zauważyć, że tupperCase nie zmienia dolnych liter na litery górnych, ponieważ nie możemy zmodyfikować niezmiennych danych po ich utworzeniu.

Wniosek

Zmienne dane mogą być modyfikowane w dowolnym momencie, podczas gdy niezmienne dane są sprzeczne z zmiennymi danymi, co oznacza, że ​​zmiennych rzeczy nie można zmienić. W tym poście wyjaśniliśmy różnicę między prymitywnymi typami danych z typami referencyjnymi. Następnie rozumiemy ideę zmiennych i niezmiennych danych, w tym celu wzięliśmy kilka przykładów i wdrożyliśmy je w JavaScript. Wreszcie możemy stwierdzić, że jeśli zmienimy wartość zmiennej odniesienia, muto to również pierwotna wartość, ale zmienna prymitywna nie zmutuje.