/ / Jaka jest różnica między użyciem require w konsoli węzła a użyciem tagu script w html - javascript, scope, underscore.js, npm

Jaka jest różnica między używaniem require w konsoli węzła a używaniem znacznika script w html - javascript, scope, underscore.js, npm

Jestem nowy w świecie js, to naprawdę mnie uczyniłozdezorientowany, wczoraj zacząłem współpracować z underscore.js w swoim kodzie, więc zaczynam próbować w środowisku REPL, wybieram konsolę Node, wymyśliłem var _ = require (./underscore.js), to wszystko działa dobrze.

Dziś próbuję osadzić go w html za pomocą <script> tag, wygląda na to, że nie muszę ręcznie var _ = underscoreobiekt _ już tam jest.

ktoś może wyjaśnić, dlaczego i jak używać npm do globalnej instalacji podkreślenia i wymagać tego bez określania lokalizacji pliku (np. ruby ​​wymaga modułu)

Odpowiedzi:

2 dla odpowiedzi № 1

Główną różnicą jest to, że użycie tagu skryptu dodaje wszystkie globalne powiązania zakresu pliku do zasięgu globalnego współużytkowanego przez wszystko kod na stronie. Kiedy piszesz JavaScript na stronie internetowej, wygląda to tak, jakby wszystkie różne skrypty znajdowały się w jednym pliku.

Z drugiej strony, węzły wymagają znacznie więcejrozsądnie nie wypełnia w ten sposób zakresu globalnego. Zamiast tego zwraca obiekt, który zawiera wszystko, co wyeksportował moduł; jest to w zasadzie przestrzeń nazw modułu. Dlatego musisz to zrobić _ = require("./underscore.js"). Jest to lepsze, ponieważ nie musisz martwić się o konflikty zmiennych globalnych różnych plików.