JS: Gültigkeit von Variablen

Hallo Profis,

wenn ich in einem JavaScript eine Variable deklariere und setze (z. B. var test = „Haus“:wink:, wo kann dann auf diese Variable zugegriffen werden? Erstreckt sich der Scope auch auf importierte Javascripte ( … ) und auf an anderer Stelle eingebundene Scripte?

Wenn ja: wo hört das auf? Ist der Scope URL-weit oder Domain-weit?

Die ergoogelbaren Erklärungen erklären immer nur den Scope innerhalb und außerhalb von Funktionen, nicht aber wie das mit mehreren Scripten auf EINER Seite ist.

Vielen Dank für Eure Hilfe.
JayKay

Hallo JayKay,

wenn ich in einem JavaScript eine Variable deklariere und
setze (z. B. var test =
„Haus“:wink:, wo kann dann auf diese Variable zugegriffen
werden?

in diesem Fall ist var test global = hierauf kann jederzeit zugegriffen werden von allem was von wo und wie an javascript danach geladen wird
gobale vars können auch in externen script deklariert werden

wird eine var innerhalb einer function deklariert ist sie lokal = nur innerhalb der function gültig

h♥rzlichen Gruß
Nitya

Hallo Nitya,

danke Dir für Deine Hilfe. Das heißt also, daß auf einer geladenen Seite alle JavaScripte auf alle globalen Variablen zugreifen können, egal wie fragmentiert sie eingebunden sind, egal ob aus externer .js-Datei nachgeladen oder in der Seite implementiert. Richtig?

setze (z. B. var test =
„Haus“:wink:, wo kann dann auf diese Variable zugegriffen
werden?

in diesem Fall ist var test global = hierauf kann jederzeit
zugegriffen werden von allem was von wo und wie an javascript
danach geladen wird
gobale vars können auch in externen script deklariert werden

Heißt das dann auch, wenn in einem Browser in einem Tab ein JavaScript läuft, kann dieses auch auf die globalen Variablen von JavaScripten in anderen Tabs zugreifen?

Viele Grüße
JK

Hallo JK,

Heißt das dann auch, wenn in einem Browser in einem Tab ein
JavaScript läuft, kann dieses auch auf die globalen Variablen
von JavaScripten in anderen Tabs zugreifen?

NEIN!!
JS läuft als Sandbox und jeder Tab/jedes Fenster ist ein eigener Prozess.
Ebenso gilt SOP (same origing policy) = jede js-Anfrage läuft nur innerhalb der gleichen Herkunft (Protokoll,Port und Domain der URL) … eigentlich nur bei ajax zu beachten.

Ausnahme ist die src-Anweisung, in der man scripts von überall laden kann.

h♥rzlichen Gruß
Nitya

1 Like

Nachtrag
habe was vergessen :smile:

Zugriff hat man auf Fenster, die mittels window.open() erzeugt wurden und auch von dort auf die vars vom opener()

1 Like

Variablen-Scope nur innerhalb des Tabs
Hallo Nitya,

… jeder Tab/jedes Fenster ist ein eigener Prozess.

Genau das hatte ich wissen wollen. Vielen Dank. Selbst jetzt, wo Du mich aufgeklärt hast, und ich weiß, wonach ich suchen muß, habe ich diese Information in keinem Werk gefunden, weder online noch gedruckt (einschl. dreier dicker JavaScript-Bücher).

Ebenso gilt SOP (same origing policy) = jede js-Anfrage läuft
nur innerhalb der gleichen Herkunft (Protokoll,Port und Domain
der URL) … eigentlich nur bei ajax zu beachten.

Ausnahme ist die src-Anweisung, in der man scripts von überall
laden kann.

Prima. Das sind wirklich sehr hilfreiche Informationen.

Vielen vielen Dank, Sternchen und beste Grüße
JK