Początkujący programiści JavaScript szczególnie jeśli pracowali z innymi językami jak Java czy C++ mogą się zdziwić, że JS nie wymaga określenia typów zmiennych przy ich deklaracji. Powstaje zatem ważne pytanie:
Czy JavaScript posiada typy zmiennych?
JavaScript nie ma typów zmiennych jak np w Javie. JavaScript oczywiście rozróżnia prymitywy które są zapisane w zmiennych, czyli inaczej mówiąc ma typy wartości zapisane w zmiennych.
JavaScript to język o dynamicznym typowaniu
Oznacza to, że nie musisz deklarować typu zmiennej przed jej użyciem jak w innych językach, a typ wartości zmiennej może zmieniać się w trakcie działania programu. Jest to jedna z głównych różnic między JavaScript a językami statycznie typowanymi, takimi jak Java, gdzie typ każdej zmiennej musi być określony przy jej deklaracji i nie może się zmienić.
Popatrz na poniższy przykład, gdzie do tej samej zmiennej myVariable przypisywane są różne typy wartości, JavaScript na to pozwala, ale w Java byłoby to błędem.
let myVariable = 20; // myVariable jest typu Number czyli liczba
console.log(myVariable); // Wynik: 20
myVariable = "Witaj, świecie!"; // myVariable jest teraz typu String czyli łańcuch znaków
console.log(myVariable); // Wynik: "Witaj, świecie!"
myVariable = true; // myVariable jest teraz typu Boolean czyli wartość logiczna
console.log(myVariable); // Wynik: true
Takie zachowanie języka może się wydawać egzotyczne, ale tak został zaprojektowany.
Zalety dynamicznego typowania
- Elastyczność: Dynamiczne typowanie pozwala na łatwe i szybkie pisanie programów, ponieważ programista nie musi martwić się o ścisłe określanie i zarządzanie typami danych.
- Krótszy i czytelniejszy kod: Brak potrzeby deklarowania typów zmniejsza ilość wymaganego kodu, co może przyczynić się do jego większej czytelności.
Wady dynamicznego typowania
- Możliwość występowania błędów w czasie wykonania: Zmienne mogą nieoczekiwanie zmieniać swoje typy jeżeli kod był źle napisany, co może prowadzić do trudnych do wykrycia błędów, jeśli programista nie będzie świadomy aktualnego typu zmiennej.
- Konieczność dokładniejszego testowania: Programy napisane w językach dynamicznie typowanych mogą wymagać dokładniejszych testów, aby upewnić się, że wszystkie typy są prawidłowo obsługiwane.
Podsumowanie
Jest to jedna z pierwszych lekcji która pokazuje jak szczególnym językiem jest JavaScript. Jeżeli wydaje się Tobie to dziwne to nie martw się, dopiero robi się ciekawie 🙂
Jeżeli chcesz przyśpieszyć swoją naukę chciałbym polecić mój kurs video JavaScript w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.