gruss alex,
... wenn ich verlgeiche if (arraywert == 0) trifft das
ja immer zu. was kann ich als wertvorbelegung nehmen
ausser false oder ""(leer), damit dieser vergleich
wirklich nur zutrifft wenn das arrayelement auch 0 ist
und nicht false oder leer??
der einfache vergleichsoperator oder auch gleichheits-
operator "==" nimmt eine typenkonvertierung auf der
rechten operandenseite vor, wenn der gesamte ausdruck
nicht sofort mit [true] validiert - deshalb sind folgende
terme immer wahr: (0 == ""), (true == 1), (-1 == "-1"), ...
der identitaets-operator "===" verlangt hingegen von
beiden operanden gleiche typen und gleiche werte - die
gerade angefuehrten beispiele saehen dann so aus:
(0 === ""), (true === 1), (-1 === "-1"), - deren
auswertung ergaebe [false];
benutze in solchen faellen also immer den identitaets-
operator;
FYI - folgende in javascript nicht vorhandenen globalen
funktionen koennen von den gerade gemachten ausfuehrungen
abgeleitet werden:
this.isUndefined = function(obj) {
return (typeof(obj) == "undefined");
};
this.isNull = function(obj) {
return ((typeof(obj) == "object") && (obj === null));
};
this.isNative = function(obj) { // returns true for every ECMA-object that is this global functions argument;
return (!isUndefined(obj) && !isNull(obj) && (typeof(obj.constructor) == "function"));
};
this.isBoolean = function(obj) {
return (isNative(obj) && (obj.constructor == Boolean));
};
this.isNumber = function(obj) {
return (isNative(obj) && (obj.constructor == Number) && isFinite(obj));
};
this.isString = function(obj) {
return (isNative(obj) && (obj.constructor == String));
};
viel erfolg und by(t)e by(t)e - peterS. - pseliger@gmx.net
--
sh:| fo:) ch:? rl:| br:& n3:} n4:# ie:| mo:{ va:| de:[ zu:] fl:) ss:) ls:& js:)