Przykład zamykania JavaScript

| | | | | | | | | | | | | | | | | | | | | | | | |

Jednym z największych haseł w JavaScript jest wyłączenie. Jest przedmiotem wielu pytań na rozmowach kwalifikacyjnych w firmach FAANG. W tym artykule porozmawiamy o ogrodzeniu i celu, zilustrujemy koncepcje prostymi przykładami, a następnie zakończymy przykładowym pytaniem z wywiadu z jednym z największych gigantów technologicznych.

Gdy ktoś mówi Ci, że coś jest lub nie jest częścią projektu, co to oznacza?

Chciałbym pomyśleć o peryskopie lub teleskopie kiedy myślę o odpowiedzi na to pytanie. Te narzędzia pokazują nam różne rzeczy w granicach jego obiektywu: jest w polu. Jeśli jest poza zakresem, nie możesz widzieć poza średnicą soczewki. A oświetlić coś poza średnicą nie jest możliwe. Powinieneś o tym pomyśleć, gdy mówimy o trzech bardzo ważnych i odrębnych typach zakresów w JavaScript: lokalnym, globalnym i leksykalnym.

Zakres lokalny

Zasięg lokalny jest najmniejszym z trzy zakresy, które będziemy omawiać dzisiaj. Kiedy deklarujemy funkcję, wszystko, co jest zawarte w nawiasach kwadratowych ({}) jest uważane za lokalne dla funkcji. Kiedy silnik JavaScript odczytuje funkcję, deklaruje zmienne; kiedy się skończy, zniszczy zmienne.

Jak widać, gdy "console.log()" jest wynikiem wywołanej funkcji powitania, jesteśmy w stanie uzyskać dostęp do WebsiteName po funkcja została odtworzona. Daje nam to kanał "Hello Karma Career", którego szukaliśmy. Jak już wspomniano console.log() zmiennej, która została zadeklarowana w funkcji generuje błąd, ponieważ nie można jej zdefiniować .

powodem, dla którego nazwa_strony WWW jest niezdefiniowana, jest to, że zmienne są tworzone wewnątrz funkcji po wywołaniu, a następnie niszczone po wykonaniu instrukcji terminala.Wszystko poza funkcją nie ma dostępu do elementów wewnątrz funkcji, chyba że ma określoną konfigurację.

zasięg globalny

To następne pole jest właściwie dosłownym tłumaczeniem frazy. Zakres globalny pobiera elementy zadeklarowane poza funkcją i rezerwuje je w przestrzeni gdzie wszystkie skrypty, metody i funkcje mogą uzyskiwać dostęp i używać ich do własnej logiki.

Co robi powyższy kod, jeśli console.log() liczy się na końcu kodu? Jak masz nadzieję, co się stanie?