Eingebaute ECMAScript-Funtionen (Einführung)

Die ECMAScript -Sprache (JavaScript) verfügt über eingebaute Funktionen, die direkt verwendet werden können. Hier werden einige ausgewählte "Built-in Functions" dargestellt.

ECMAScript-Funtionen ECMAScript 5 Kompatibilität

Technologien ändern sich, sowohl das Machbare, wie das Verfügbare. Die "gängigen" ( proprietären ) Browser erfüllen (2016) ECMAScript 5/6 Standard mit gewissen Einschränkungen, siehe z.B. github ECMAScript compatibility table .

Ein Brwoser hat eingebaute Funktionen, die mit den ECMASxript zusammenwirken und z.B. für Zugriffe auf DOM-Strukturen benötigt werden ( auch AJAX, atob, btoa, usw. ). Solche Funktionen sind i.a. an das ddie Objekte window, iframe, frame, links, location, event, history, usw. gebunden. Siehe z.B. Browser-Objekt-Hierarchie .

Übersicht: zu String-Funktionen

ECMAScript (JavaScript) hat nützliche Zeichenketten-Funktionen. In den ("gängigen") Browsern wird unterstützt:

ECMAScript String Object Reference
Method Description
anchor() Creates an HTML anchor
big() Displays a string in a big font
bold() Displays a string in bold
charAt() Returns the character at a specified position
charCodeAt() Returns the Unicode of the character at a specified position
concat() Joins two or more strings
fixed() Displays a string as teletype text
fontcolor() Displays a string in a specified color
fontsize() Displays a string in a specified size
fromCharCode() Takes the specified Unicode values and returns a string
indexOf() Returns the position of the first occurrence of a specified string value in a string
italics() Displays a string in italic
lastIndexOf() Returns the position of the last occurrence of a specified string value, searching backwards from the specified position in a string
link() Displays a string as a hyperlink
match() Searches for a specified value in a string
replace() Replaces some characters with some other characters in a string
search() Searches a string for a specified value
slice() Extracts a part of a string and returns the extracted part in a new string
small() Displays a string in a small font
split() Splits a string into an array of strings
strike() Displays a string with a strikethrough
sub() Displays a string as subscript
substr() Extracts a specified number of characters in a string, from a start index
substring() Extracts the characters in a string between two specified indices
sup() Displays a string as superscript
toLowerCase() Displays a string in lowercase letters
toUpperCase() Displays a string in uppercase letters
toSource() Represents the source code of an object
valueOf() Returns the primitive value of a String object


String Object Properties
Property Description
constructor A reference to the function that created the object
length Returns the number of characters in a string
prototype Allows you to add properties and methods to the object
Übersicht zu den mathematischen Funktionen

In ECMAScript gibt es (ähnlich zur Java-Math-Bibliothek) statischen Methoden, die mit dem Math-Objekt verfügbar sind und z.B. für wissenschaftliche Berechnungen verwendet werden können.

Funktion Bedeutung Funktion Bedeutung
Math.E Eulersche Konstante e Math.ceil() Liefert für Zwischenwerte die nächsthöhere Ganzzahl
Math.PI für Kreisberechnungen Math.floor() Liefert für Zwischenwerte die nächstniedrigere Ganzzahl
Math.round() kaufmännisches Runden Math.min() Min-Wert
Math.max() Max-Wert Math.random() Pseudo-Zufallszahl zwischen 0.0<= ... 1.0
Beisp.: Math.round(Math.random() * 2147483647)
Math.sqrt() Quadratwurzel Math.pow(a,b) liefert ab
Math.log() natürlicher Logarithmus Math.exp() e-Funktion
Math.cos() Trigonometrische Funktion Math.acos() Trigonometrische Funktion
Math.sin() Trigonometrische Funktion Math.asin() Trigonometrische Funktion
Math.tan() Trigonometrische Funktion Math.atan() Trigonometrische Funktion
Beispiele: Math. .PI, .min/max, .round, .cos, .sin, .tan, .pow, .random

Reguläre Ausdrücken können dynamisch (zur Laufzeit) mit new RegExp(,) erzeugt werden.

Konstanten
Funktion
Math-Konstanten
Math.-Funktionen
Anzeige


.LN2
.LN10
.LOG2E
.LOG10E

.PI

.SQRT1_2
.SQRT2

.min()
.max()
.floor()
.ceil()
.round()

.cos()
.sin()
.tan()

.acos()
.asin()
.atan()

.sqrt()
.pow()

.exp()
.random()
 var s = "E = " + Math.E 
 +"<br />Math.LN2     = " + Math.LN2 
 +"<br />Math.LN10    = " + Math.LN10 
 +"<br />Math.LOG2E   = " + Math.LOG2E 
 +"<br />Math.LOG10E  = " + Math.LOG10E 
 +"<br />Math.PI      = " + Math.PI 
 +"<br />Math.SQRT1_2 = " + Math.SQRT1_2 
 +"<br />Math.SQRT2   = " + Math.SQRT2
 +"<br />Math.min(5,-5)  = " + Math.min(5,-5) 
 +"<br />Math.max(5,-5)  = " + Math.max(5,-5) 
 +"<br />Math.abs(-2.3)  = " + Math.abs(-2.3) 
 +"<br />Math.floor( 3.4)= " + Math.floor( 3.4) 
 +"<br />Math.floor(-3.4)= " + Math.floor(-3.4) 
 +"<br />Math.ceil( 3.4) = " + Math.ceil(  3.4) 
 +"<br />Math.ceil(-3.4) = " + Math.ceil(-3.4) 
 +"<br />Math.round( 3.4)= " + Math.round( 3.4) 
 +"<br />Math.round(-3.4)= " + Math.round(-3.4) 

 +"<br />Math.cos(0) = " + Math.cos(0) 
 +"<br />Math.sin(0) = " + Math.sin(0) 
 +"<br />Math.tan(0) = " + Math.tan(0)
 
 +"<br />Math.acos(1.2) = " + Math.acos(1.2) 
 +"<br />Math.asin(1) = " + Math.asin(1) 
 +"<br />Math.atan(1) = " + Math.atan(1) 

 +"<br />Math.sqrt(7.02) = " + Math.sqrt(7.02) 
 +"<br />Math.pow(2.01,3)= " + Math.pow(2.01,3) 

 +"<br />Math.exp(1)   = " + Math.exp(1) 
 +"<br />Math.log(1)   = " + Math.log(1) 
 +"<br />Math.random() = " + Math.random() 
 +"<br />Math.random() = " + Math.random(); 
 document.write(s);
Ausgabe von s:
Globale Funktionen ( eval, parseFloat, Number, escape, atob )
Funktion Beispiel Anzeige
eval()
interpretiert einen String als JavaScript-Programm und führt dieses im aktuellen Sichtbarkeitsbereich aus.
  var a = 3, b = 5, c; 
  var x = eval("a - 2"); 
  var y = eval("( 21 % 11 ) / b");
  var s = "if(c==undefined)z=3;else z=4;" 
  var z = eval(s); 
  s = "x="+x + "<br>y="+y + "<br>z="+z;
  document.write(s);

Hinweis:
eval('(' + str + ')') entspricht dem Aufruf
(new Function('return ' + str))() ???

parseFloat()
wandelt eine Zeichenfolge in eine Fließkommazahl
  var arr = ["2.5","3,5","abc","1a"];
  var str ="";
  for(var i=0; i < arr.length; ++i) {
    str += "arr["+i+"]=";
    str += parseFloat(arr[i])+"<br>";
  } document.write(str);

NaN-Prüfung:
if(isNaN(var)==true) ...
parseInt()
wandelt eine Zeichenfolge in eine ganze Zahl
  var arr = ["2.5","03,5","abc","1a"];
  var a, str ="";
  for(var i=0; i < arr.length; ++i) {
    e = arr[i];
    while (e.charAt(0) == '0')
           e = e.substring(1,e.length);
    str += "arr["+i+"]=" + +parseInt(e) + "<br>";
  } document.write(str);
parseInt()
wandelt eine Zeichenfolge in eine ganze Zahl
(radix 0 kann bei einzelnen Browsern zu Fehlern führen)
  function teste_parseInt(radix) {
   var arr = ["12.5","013,5","1f","abc"];
   var str ="";
   for(var i=0; i < arr.length; ++i) {  
     var e = arr[i];
     while (e.charAt(0) == '0')
            e = e.substring(1,e.length);
     str += "arr["+i+"]=" + parseInt(e,radix) + "<br />";
   } return str;
  }
  var s = "radix 10:<br />"+teste_parseInt(10);
     s += "radix 16:<br />"+teste_parseInt(16);
  document.write(s);
btoa(), atob
8-Bit-String und Base64
//nur 8-Bit-Zeichen
  var my_str = "Testä",
      my_64 = window.btoa(my_str),
      my_org = window.atob(my_64);
Number()
wandelt String in Zahl
  var date_time = new Date().getTime(); 
  var msec1 = new Date ("Jan 1, 2004 12:00:00");
  var msec2 = new Date ("Jan 2, 2004 12:00:00");
  var msec = Number(msec2) - Number(msec1);
  var str  = date_time 
      + "<br />Tag=" + msec/1000/60/60+" Stunden";
  document.write(str);
escape()
Zeichenfolge
  var s = escape("Hallo,\n Welt");
  document.write(s);
unescape()
inverse Funktion zu escape()
  var s = unescape("%41%42%43");
  document.write(s);
unescape()-Beispiel:
 var s="<pre>";
 for (var i=0; i<256; i++) {
   if((i%8)==0) s += "<br />";
   s += "["+i+"]="
   s += unescape("%"+i.toString(16));
   s += ", "
 } s += "</pre>"
 document.write(s)
siehe Ausgabe unten
Beispiele: String-Funktionen (.toLowerCase, .charAt, .substr, .split, .toFixed, ...)

Einige Beispiele zu ECMAScript (JavaScript) Zeichenketten-Funktionen.

Funktion String-Beispiele Anzeige
Kommentare
Comments
// Kommentar bis Zeilenende 
/* 
  MultiLine -
  Kommentar
*/ 
Viele elementare Sprachkonstrukte sind "recht ähnlich" zur C++- und Java-Syntax
ECMAScript-
Anweisungen

parseInt()
substring()
typeof()
<script type="text/javascript">/*<![CDATA[*/
           // 012345678901234 
var aStr1  = "43_Dies ist der"; 
var aStr2  = " erste Satz."; 
var aNum1  = parseInt(aStr1) - 42; 
var aSatz  = aNum1;
aSatz += aStr1.substring(2,aStr1.length);
aSatz += aStr2; 
document.write(aSatz + "<br />");
document.write("typeof(aNum1)=" 
        + typeof(aNum1)+"<br />");
document.write("typeof(aStr1)=" 
        + typeof(aStr1));
/*]]>*/</script>
Anzeige:

undefined
null
typeof()
  var a=1, b=new Array(2), c=null, d;

  function wrt(s,v) {
    var str = "<br>";
  //if (v != undefined) { ... }
    str +="typeof("+s+")=";
    str += typeof(v);
    document.write(str);
  }
  wrt("a",a); wrt("b[1]",b[1]);
  wrt("c",c); wrt("d",d);   
Anzeige:
toLowerCase()
toUpperCase()
  var str = "Hans Weber";
  var s1 = str.toLowerCase();
  var s2 = str.toUpperCase();
  var s3 = s2.substring(1,s2.length-1);
  var s  = "Lower=" + s1 + "<br>";
      s += "Upper=" + s2 + "<br>";
      s += "Teil =" + s3;
  document.write(s);
Ausgabe von s:
charCodeAt()
fromCharCode()
Hinweis für mehrere Bytes: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/fromCharCode
  var str = "ABC";
  var c2  = str.charCodeAt(2);
  var s   = String.fromCharCode(0x41,0x42,c2);
  document.write(s);
Ausgabe von s:
charAt()
  var str = "ABC";
  var c0  = str.charAt(0);
  var c1  = str.charAt(1);
  var c2  = str.charAt(2);
  var s   = c0 + c1 + c2;
  document.write(s);
Ausgabe von s:
str.substr
(von,anz)
  var str = "0123456789";
  var s6_ = str.substr(6);
  var s67 = str.substr(6,2);
  var s = "s6_=" + s6_;
  s += "<br />s67=" + s67;
  document.write(s);
str.substring
(von,bis)
  var str = "0123456";
  var s2_ = str.substring(2);
  var s23 = str.substring(2,4);
  var len = str.length;
  var s56 = str.substring(len-2,len);
  var s = "s2_=" + s2_;
  s += "<br />s23=" + s23;
  s += "<br />s56=" + s56;
  document.write(s);
Ausgabe von s:
str.split(trenn)
 var str = "0,   '1',2,3,";
 var arr = str.split(",");
 var s="";
 for(var i=0;i<arr.length;i++) {
    s += "<br />arr["+i+"]=" + arr[i];
    s += " mit typeof="+typeof(arr[i]);
 }    
 document.write(s);
Ausgabe:
.toString()
.toFixed())
.toExponential()
.toPrecision()
.toLocaleString()
  var s, x = 1234.56789;
  s  ="x.toString()="+x.toString()+"<br>"
  s +="x.toFixed(3)="+x.toFixed(3)+"<br>"
  s +="x.toExponential(3)="+x.toExponential(3)
  s +="x.toPrecision(3)="+x.toPrecision(3)
  s +="x.toLocaleString()="+x.toLocaleString()
  document.write(s);
Ausgabe:
Beispiele: Strings und RegExpr (.search,.replace,.match,.exec,.indexOf, ... )

Reguläre Ausdrücken können dynamisch (zur Laufzeit) mit new RegExp(,) erzeugt werden.

Funktion String-Beispiele Anzeige
.indexOf()
.lastIndexOf()
.search()

"Hallo Welt".indexOf('Hallo') liefert 0, "Hallo Welt".indexOf('W') liefert 6, ("Hallo Welt".indexOf(' ') > -1) liefert true.

  var str   = "xyz3456789xyz345";
  var find  = "xyz";
  var idx1  = str.indexOf(find);
  var idx2  = str.indexOf(find,idx1+1);
  var idx3  = str.lastIndexOf(find);
  var re    = new RegExp(find,"gi");
  var idx4  = str.search(re); 
  var s     = find+" ab idx="+idx1+"<br>";
      s    += find+" ab idx="+idx2+"<br>";
      s    += "last   idx3="+idx3+"<br>";
      s    += "search idx4="+idx4+"<br>";
  document.write(s);
Ausgabe von s:
replace()
  var str  = "xyz3456789xyz345";
  var s1  = str.replace(/xyz/,"012");
  var s2  = str.replace(/xyz/g,"012");
  var re  = new RegExp("xyz","gi");
  var s3  = str.replace(re,"012");
  document.write(s1+"<br>"+s2+"<br>"+s3);
Ausgabe von s1, s2, s3:
.match()
  var str  = "xyz3456789xyz345";
  var arr  = str.match(/xyz/g);
  var s  = "gefunden=";
      s +=  arr.length + " mal<br>";
      s +=  "arr=" + arr;
  document.write(s);
Ausgabe von s:
.split()
.join()
.slice()
  var str = "Carl G Jung (Psych)", sep =" ";
  var arr = str.split(sep);
  
  var s = arr.slice(0,-1).join("|")+"<br />";

  for (var i=0; i < arr.length; ++i) {
    s += "arr["+i+"]="+arr[i]+"<br />";
  } 
  document.write(s);
Teilstrings von str:
re.exec()
arr.index
arr.lastIndex
  var arr, s = "", str = "Carl G Jung";
  var re = new RegExp("\\w+","g");
  while( arr = re.exec(str) ) {
    s += arr.index; //+"-"+arr.lastIndex;
    s += "-"+(arr.index+arr.toString().length);
    s += ":"+ arr + "<br>";
  }
  document.write(s);
Durchläuft str,
ermittelt auch
die Positionen:
re.exec()
RegExp.$
.split()
  var s1="", s2="<br />", s3="<br />";
  var str = "Carl G. Jung";
  var re  = new RegExp(/(\w.+)\s(\w.+)/g);
  var arr = re.exec(str);
  for (i=0; i < arr.length; ++i) {
    s1 += "arr["+i+"]="+arr[i]+"<br />";
  } 
  for (i=1; i < arr.length; ++i) {
    s2 += "RegExp.$"+i+"=";
    s2 += eval("RegExp.$"+i)+"<br />";
  } 
  var arr3 = str.split(" ");
  for (i=0; i < arr3.length; ++i) {
    s3 += "arr3["+i+"]="+arr3[i]+"<br />";
  } 
  document.write(s1+s2+s3);
einzelne Worte:
Beispiel: Edit-Code mit Hilfe von eval() ausführen

Die eval()-Funktion kann ECMAScript -Source interpretieren und ausführen. Hier ein Test:

EINGABE:   


Hier der vereinfachte Pseudo-Code:

<form action="" onsubmit="eval(this.TA.value); return false;">
<textarea rows="8" cols="80" name="TA"> 
  var s = "";
  for (i=0; i < 10; i++) {
    s += i*i + "\n";
  } alert("summe s = " + s);
</textarea>
<input type="submit" value="evaluate code" />  
</form>