JavaScript
28.05.2014, 00:00 Uhr
10 Fallstricke für C#-Entwickler
JavaScript ist zwar eine C-artige Sprache. Durch ihre funktionale Natur ist sie aber doch anders einzusetzen, als ein C#-Entwickler dies erwartet.
Es geht schon los mit dem Gleichheitsoperator. In C# gibt es nur einen: ==.
In JavaScript hingegen gibt es derer zwei: == und ===.
Worin liegt der Unterschied der beiden? Welchen verwende ich wann? Unter http://www.codetails.com/2014/05/27/top-10-javascript-traps-for-a-c-developer/ erklärt Prasad Honrao die Besonderheiten von JavaScript, die einem C#-Entwickler das Leben schwer machen.
Die geschweiften Klammern in Kombination mit dem return-Statement zum Beispiel können richtig für Spaß sorgen. Die beiden Funktionen
// c# public static int Add(int num1, int num2) { return num1 + num2; } public static dynamic GetDefaultCategory(){ return new { Name = "General" }; }
// JavaScript function Add(num1, num2) { return num1 + num2; } function GetDefaultCategory() { return { name: "General" } };
sind bis auf das new-Schlüsselwort identisch. Wer aber GetDefaultCategory in JavaScript ausführt, wird sein blaues Wunder erleben. Grund: Der JavaScript-Compiler ergänzt nach dem return-Statement ein Semikolon, weil nach dem return keine geschweifte Klammer steht. Für dieselbe Funktionalität wie unter C# muss die JavaScript-Funktion folgendermaßen aussehen:
function Add(num1, num2){ return num1 + num2; } function GetDefaultCategory() { return { name: "General" } };
[tib]