Średnik dla bezpieczeństwa w IIFE

Niech teraz nasza funkcja wywołująca się od razu będzie nie z plusem na początku, ale opakowana w okrągłe nawiasy, w ten sposób:

javascript(function() {
  console.log(1); // wypisze 1
})();

Niech zmienna num będzie ustawiona na zewnątrz funkcji:

javascriptlet num = 1; // średnik jest

(function() {
  console.log(num); // wypisze 1
})();

Załóżmy teraz, że zapomnieliśmy postawić średnika:

javascriptlet num = 1

(function() {
  console.log(num); //!! zwróci błąd
})();

Okazuje się, że taki kod zwróci błąd, ponieważ JavaScript postrzega naszą funkcję jako kontynuację polecenia z pierwszej linii.

Aby uniknąć takich problemów, przed wywołaniem funkcji od razu zawsze należy stawiać średnik, w ten sposób:

javascriptlet num = 1

;(function() {
  console.log(num); // wypisze 1
})();

Wydaje się, że problem jest nieco naciągany. W rzeczywistości tak nie jest. Może zaistnieć taka sytuacja, że na Twojej stronie podłączonych jest kilka skryptów z osobnych plików. W tym przypadku na końcu jednego pliku może brakować średnika i to automatycznie doprowadzi do problemu, jeśli drugi plik zaczyna się od wywołania funkcji od razu.

Dlatego, zawsze-zawsze stawiaj średnik przed wywołaniem funkcji od razu, nawet jeśli w danym momencie jesteś pewien, że problemów nie będzie. Mogą one pojawić się później.

Zastosujmy powyższe i wywołajmy funkcję od razu, stawiając na początku średnik:

javascript;(function() {
  console.log(1); // wypisze 1
})();
Задание 1

Określ, bez uruchamiania kodu, co zostanie wypisane w konsoli:

javascriptlet str = 'str';

(function() {
  console.log(1);
})();
Задание 2

Określ, bez uruchamiania kodu, co zostanie wypisane w konsoli:

javascriptlet str = 'str'

(function() {
  console.log(1);
})();