[Beschreibung] [Referenz]

Vermischtes

Beschreibung

Auf dieser Seite gibt es kein praktisches Beispiel, nur Theorie !


Referenz

[
Number-Objekt] [Boolean-Objekt] [Version] [externe JS-Datei] [<noscript>-Tag] [JS-Ausdrücke als HTML-Attribute] [prototype] [constructor] [caller]

Number-Objekt

Das Number-Objekt besitzt folgende Eigenschaften
MAX_VALUE die kleinste darstellbare Zahl
MIN_VALUE die größte darstellbare Zahl
NaN spezieller Wert "not a number", z.B. als Ergebnis eines mißglückten parseInt()
NEGATIVE_INFINITY spezieller negativer unendlicher Wert, bei Overflow
POSITIVE_INFINITY spezieller unendlicher Wert, bei Overflow

Boolean-Objekt

Das Boolean-Objekt dient zur Erzeugung von boolschen Variablen, d.h. Variablen mit dem Wert true (wahr) oder false (falsch), z.B.
 myBool = new Boolean([wert]);
Der optionale Parameter wert gibt dabei den (Anfangs-) Wert der erzeugten Variablen an:
Wenn er weggelassen wird oder 0, null, false oder "" (leerer String) ist, dann ist der Anfangswert false;
in allen anderen Fällen ist er true, auch wenn z.B. der string "false" angegeben wird.

JavaScript Version

Im <script>-tag kann jetzt die erforderliche JavaScript-Version angegeben werden, dazu wird das language-Attribut benutzt, z.B.
 <script language="JavaScript1.1">
Browser die nicht die entsprechende Version beherrschen, ignorieren das Script.

JavaScript aus einer externen Datei

JavaScripts können jetzt auch in einer Datei außerhalb des HTML-Dokuments abgelegt werden. Hierzu dient das src-Attribut im <script>-Tag, z.B.
 <script src="myScript.js">
  alert('Script "myScript.js" nicht gefunden');
 </script>
Dies ist besonders dann praktisch, wenn bestimmte Scripts von unterschiedlichen HTML-Seiten immer wieder verwendet werden; oder aber auch um die Pflege des Scripts von der Pflege des HTML-Dokuments zu trennen.
Wenn das src-Attribut angegeben wird, versucht JavaScript zunächst die entsprechende Script-Datei zu lesen. Nur wenn dies mißlingt, werden die im Script-body angegebenen Anweisungen ausgeführt (im Beispiel alert).
Das abschließende </script>-Tag ist zwingend erforderlich, auch wenn im Rumpf des Scripts innerhalb des HTML-Dokuments nichts steht.
Für das src-Attribut gelten die üblichen Konventionen zur Angabe einer URL, wie sie z.B. auch bei Links verwendet werden.

Beim Zugriff auf JavaScript-Dateien über das http-Protokoll (also über einen Web-Server), ist es erforderlich, daß der Server folgenden MIME type definiert hat:

 type=application/x-javascript          exts=js
Gegebenenfalls müssen Sie den Webmaster Ihres Server bitten, einen entsprechenden Eintrag in der Konfigurationsdatei vorzunehmen.

<noscript>-tag

Innerhalb eines <noscript>-Blocks kann ein alternativer Text für Browser angegeben werden, die kein JavaScript beherrschen, oder bei denen es vom Anwender abgeschaltet wurde, z.B.
 <noscript>
  Übrigens: zum Betrachten der folgenden Seiten sollten Sie ihrem Browser
  die Ausführung von Javascript erlauben.<br>
  Netscape: Optionen/Netzwerkeinstellungen/Sprachen/JavaScript aktivieren<br>
  MSIE: Ansicht/Optionen/Sicherheit/ActiveX-Skripts erlauben 
 </noscript>
Browser, die JavaScript beherrschen, und denen die Ausführung gestattet ist, sollten den Text innerhalb des des <noscript> Blocks ignorieren.

Netscape 2.0 kennt das <noscript>-Tag noch nicht; d.h. ein vorhandener alternativer Text wird auch ausgegeben, wenn JavaScript eingeschaltet ist.

direkte Benutzung von JavaScript-Ausdrücken in HTML-Attributen

Innerhalb von HTML-Tags, die für bestimmte Attribute Werte erwarten, können anstelle fester Werte auch JavaScript-Ausdrücke vorgegeben werden.
Der entsprechende Ausdruck wird dabei zwischen den Zeichen &{ und }; eingeklammert.
Im folgenden Beispiel werden Hintergrund- und Textfarbe eines Dokuments in Abhängigkeit von der Tageszeit gesetzt :
<head>
<script language="JavaScript">
<!--
 date=new Date();
 hh=date.getHours();
 if(hh < 8 || hh > 20) {
   bgcol="black";
   fgcol="white";
 } else {
   bgcol="white";
   fgcol="black";
 }
//-->
</script>
<body text=&{fgcol}; bgcolor=&{bgcol};>
<center><h1>Hello world</h1></center>
</body>

Diese Vorgehensweise ist grundsätzlich problematisch für Browser, die kein JavaScript beherrschen oder bei denen JavaScript abgeschaltet wurde.

prototype

Mittels prototype können allen Objekten eines bestimmten Types Eigenschaften oder Methoden zugewiesen werden. prototype ist definiert für alle Objekte, die mit new erzeugt werden können, also die Standard-Objekte Array, Boolean, Date, Function, Image, Number, Select object option und String sowie für (durch eine "construction function") benutzerdefinierte Objekte.

Im folgenden Beispiel wird dem Standard-Objekt Date die neue Eigenschaft descr (beschreibender Text) und die neue Methode print (Formatierung im deutschen Format) zugewiesen.

<script language="JavaScript1.1">
<!--

  Date.prototype.descr=null;
  Date.prototype.print=dat_print;

  var dat1=new Date();
  dat1.descr="das Datum von heute";
  var dat2=new Date();
  dat2.setDate(dat2.getDate()+1);
  dat2.descr="das Datum von morgen";

  document.write(dat1.descr+" ist "+dat1.print()+"<br>");
  document.write(dat2.descr+" ist "+dat2.print()+"<br>");

  function dat_print() {
    var dd=this.getDate();
    if(dd < 10)dd="0"+dd;
    var mm=this.getMonth()+1;
    if(mm < 10)mm="0"+mm;
    var yy=this.getYear();
    return dd+"."+mm+"."+yy
  }

//-->
</script>
Das Script erzeugt folgende Ausgabe:

Mit prototype können auch vorhandene Methoden eines Standard-Objektes überschrieben werden.
So könnte im oberen Beispiel die Methode toString des Date-Objektes durch die selbst definierte function dat_print ersetzt werden :
    Date.prototype.toString=dat_print;
Damit würde z.B. document.write("heute ist der "+dat1); eine Datumsausgabe im selbstdefinierten Format bewirken.

constructor

constructor ist eine Eigenschaft aller Objekte, die mit new erzeugt wurden (bzw. die so hätten erzeugt werden können, aber durch "literal notation" erzeugt wurden). Sie gibt die function an, die den Objekt-Typ definiert.

caller

caller ist eine Eigenschaft einer function. Sie gibt an, durch welche andere function die aktuell ausgeführte aufgerufen wurde, bzw. liefert als Ergebnis null, wenn sie vom "top-level" aus gerufen wurde. Beispiel:
function myFunc() {
  if (myFunc.caller == null) {
    alert("ich wurde vom top-level aus gerufen");
  } else {
    alert("ich wurde gerufen von " + myFunc.caller);
  }
}


Auf der nächsten Seite geht es weiter mit JavaScript Version 1.2

home
Erstellt von © Uwe Brinkmann - bingo e.V. - Stand 04.06.98