ECMAScript (Beispiele 1)

Nächste Frage Vorherige Frage Zeige Lösung an Gesamtpunktzahl

Es geht um die Schreibweise von ECMAScript-Zahlen.
Die ganze Zahl -17 kann bei ECMAScript in der Variablen var Zahl = -17; hinterlegt werden.
Die Zahl -17.2 kann bei ECMAScript als Fließkommazahl var Zahl = -17.2; geschrieben werden.
Die Zahl -17.2 kann bei ECMAScript als Fließkommazahl var Zahl = -1.72e1; geschrieben werden. Zahl hat dann den Typ 'number'.
ECMAScript verwendet für alle Zahlen intern eine 64-Bit-Fließkomma-Darstellung.
Es geht um den String var str = '123'; Richtige Aussagen bitte anhaken.
str.indexOf('3') liefert die Zahl 2
str.charAt(1) liefert den String '2'
str.substr(1,1) liefert den String '2'
str.slice(1,2) liefert den String '2'
str.split('') liefert den Array ['1', '2', '3']
Es geht um eingebaute Funktion, mit denen zeichenketten modifiziert werden können.
<script>
var doc = window.document, s = "Hello Welt!", 
arr = [
  typeof s.indexOf("d"),
  typeof s.indexOf("Welt"),
  typeof s.match("world"),
  typeof s.replace("xyz", "THM"),
  typeof s.replace(/xyz/i, "THM")
];

doc.write( arr.join(" | ") );
</script>
Es wird ausgegeben
number | number | object | string | string
Es wird ausgegeben
number | number | object | string | string
Bei Browsern ist der Typ regulärer Ausdrücke uneinheitlich, deshalb sind die anderen Antworten nicht korrekt.
Durch arr.join(" | ") werden die Array-Elemente mit " | " zu einer resultierenden Zeichenkette verbunden.
Es geht um NaN, isNaN(x), isFinite(x) und Number.MAX_VALUE. Richtige Aussagen bitte anhaken.
NaN steht für "Not a Number". Die ECMAScript-Funktion isNaN(x) versucht x in eine Zahl zu konvertieren und gibt false zurück, wenn dies gelingt.
isNaN(x) liefert true, wenn der Zahlenwert x größer als Infinity = 1.79769313486231570e+308 ist.
Für
var x= Number.MAX_VALUE;
if (!isFinite(x*2)){ alert("Die Zahl ist nicht zu verarbeiten");}
wird "Die Zahl ist nicht zu verarbeiten" angezeigt.
Betrachten sie bitte das folgende Code-Schnipsel:
<script>
var x = "42", y1, y2, y3, 
    s = "typeof x = " + typeof x,
    a = [];

y1 =  x + 7; a.push(" | y1 = " + y1);
y2 =  x - 7; a.push(" | y2 = " + y2);
y3 = y1 % 3; a.push(" | y3 = " + y3);

alert(s + a.join(''));
</script>
Welche Aussage ist richtig?
Es liegt ein Syntaxtfehler vor
typeof x = string | y1 = 427 | y2 = 35 | y3 = 1
typeof x = number | y1 = 49 | y2 = 35 | y3 = 2
Betrachten sie bitte das folgende Code-Schnipsel:
<script>
var arr = [, ("42" ==  42),
             ("42" === 42),
             ("42" !=  42),
             ("42" !== 42) ];
       arr[0] = !arr[5];
       arr[5] = !arr[0];  
 alert(arr.join());
</script>
Welche Ergebnisse sind richtig?
Bei "var arr = [, ..." liegt ein Syntaxfehler vor (Komma).
richtig ist: false,false,true,true,false,false
richtig ist: true,true, false,false, true,false
Betrachten sie bitte das folgende Code-Schnipsel. Richtiges Aussagen bitte ankreuzen.
<script>
 var arr = [], typ = [], 
    obj = { x: 4711, y: 4712 };
    arr[0] = obj.x;  typ.push(typeof arr[0]);
      delete obj.x;
    arr[1] = obj.x;  typ.push(typeof arr[1]);

    arr[2] = obj.y;  typ.push(typeof arr[2]);
    obj.y  = void(0);
    arr[3] = obj.y;  typ.push(typeof arr[3]);
    alert(arr+'\n'+typ);
</script>
arr=[4711,4712,4713,4714]; typ=[number,number,number,number];
arr=[4711,null,4712,0]; typ=[number,null,number,null];
arr=[4711,,4712, ]; typ=[number,undefined,number,undefined];
Hier wird ein Objekt obj und ein Array arr und die verfügbaren Funktionen concat() und push() und join() verwendet. Welche Ausgabe ergibt sich?
<script>
var obj = {'u': 'x', '1': 'y' },
    arr = [     'x',      'y' ], a, b, s ;
 
    a = [0,1,2].concat(arr);
    b = [0,1,2].concat(obj); b[0] = a[3];
    arr = [ ];
    arr.push( b[0]     );
    arr.push( b[1]     );
    arr.push( b[2]     );
    arr.push( b[3].u   );
    arr.push( b[3]["1"]);

window.onload = function() {
    document.write( arr.join() );
} 
</script>
richtig ist: x,1,2,undefined,undefined
richtig ist: x,1,2,x,y
richtig ist: x,1,2,error,error
Es geht um die Parameterwerte nach einem Aufruf der Funktion
 
function f(a,b) {  
  // Welche Werte haben hier die Parameter?
}
Bei dem Aufruf f(1) bekommt a den Wert 1 und b ist undefined
Bei dem Aufruf f(1,2) bekommt a den Wert 1 und b den Wert 2
Bei dem Aufruf f(1,2,3) bekommt a den Wert 1 und b den Wert 2. Der dritte Parameter kann mit Hilfe von arguments[2] erhalten werden.
Die Funktion calc(add1, add2) ruft die Funktionen add1 und add2 auf.
<script>
var add1 = function (a, b) { return a + b; },
    add2 = function (a, b) {
           var a = Array.prototype.slice.apply(arguments);
           return a[0] + a[1];
};

function calc(add1, add2) { var r = [];
   r[0] = add1( 12, 35 );
   r[1] = add2.apply(null, [9, 2]); return r;
}

window.onload = function () {
    document.getElementById('OUT').innerHTML = calc(add2, add1);
}
</script>
<div id="OUT"></div>
Welches Ergebnis erscheint im div mit id="OUT"?
19, 37
undefined
47, 11
Betrachten sie bitte das folgende Code-Schnipsel. Bitte richtige Aussagen ankreuzen.
<script>
var a=[NaN,0/0,'blah',0,'0',1,1/0,-1/0,Number(5),null,undefined],
    b=[], c=[], i, s;
for (i=0; i < a.length; i +=1 ) { 
b[i] = "" + a[i]; 
c[i] = "" + typeof a[i]; 
}
window.onload = function() {
 s  = "a=["+a+'];<br />';
 s += 'b=['+b+"];<br />"; 
 s += 'c=['+c+'];<br />'; 
 document.write(s);
}
</script>
undefined gibt es nicht.
1/0 ist mathematisch problematisch und macht deshalb einen Ansturz.
Die Ausgabe des Code-Schnipsel ist
a=[NaN,NaN,blah,0,0,1,Infinity,-Infinity,5,,];
b=[NaN,NaN,blah,0,0,1,Infinity,-Infinity,5,null,undefined];
c=[number,number,string,number,string,number,number,number,number,object,undefined];
Ein Test von isNaN() liefert folgendes:
isNaN("356t735") liefert true 
isNaN("345.56")  liefert false
isNaN("3.4.5")   liefert true
isNaN("4564")    liefert false 
Es geht um reguläre Ausdrücke. Was gibt das folgende Code-Schnipsel aus? Richtige Aussagen bitte ankreuzen.
<script>
var str = 'Hello, world.';

var b1 = /o, w/.test(str);	
var b2 = str.search(/o, w/)       > -1;	
var b3 = str.match(/o, w/).length > 0;	
var b4 = str.indexOf('o, w')      > -1;

 window.onload = function() { 
    document.write( b1 +","+ b2 +","+ b3 +","+ b4 );
 } 
</script>
Ausgabe ist 0,1,0,2
Ausgabe ist true,true,true,true
Ausgabe ist undefined,undefined,undefined,undefined