ホームページ > 記事 > ウェブフロントエンド > C# と JavaScript の違いは何ですか
違い: 1. JavaScript の var キーワードはさまざまな型を参照できますが、C# では参照できません; 2. JS には 6 つの基本データ型と 1 つの参照データ型がありますが、C# には 16 の事前定義された型とユーザー定義の型があります型; 3. 文字列は、JS では値 (基本) 型ですが、C# では参照 (複雑) データです。
このチュートリアルの動作環境: Windows7 システム、javascript1.8.5&&C# バージョン 8、Dell G3 コンピューター。
1 の違い。var キーワード
// C#中 var total = 15; var mec = new MyExcellentClass(); // 等价于 int total = 15; MyExcellentClass mec = new MyExcellentClass();
C# , var キーワードは、特定の種類の変数を表す記号ではありません。これは、初期化ステートメントの右側から推論できる任意の型の 構文上の省略表記 にすぎません。異なる型を参照できる js の var とは異なり、var キーワードは C# の強い型の性質を変更しません。
2. ネストされたブロック内のローカル変数
// C# void Method { var num1 = 5; { var num2 = 10; ... } ... }
// JS function Method1() { var num1 = 5; { var num2 = 10; ... } ... } // 采用es6的let变量 function Method2() { let num1 = 5; { let num2 = 10; ... } ... }
まず第一に、es6 より前の js にはブロックレベルのスコープの概念がありませんでした。つまり、関数 Method1 では、num1 と num2 の両方が同じスコープ (つまり、Method1 の関数スコープ) 内にあります。
es6 の let 変数により、js はブロック スコープの効果を実現できます。つまり、変数 num2 は隣接する中括弧 { } の中にのみ存在します。このとき、変数の効果は同じです。 C# のネストされたブロックと同様です。
2 番目に、別の違いがあります。JS、C、および C では、変数の名前を変更できます。内部スコープ (ブロック スコープ) では、内部名は外部名をマスクし、変数の値は同じ名前は名前変更されます。ただし、C# では同じ名前の変数は許可されません (ネスト レベルに関係なく、最初の名前の有効範囲内で同じ名前の別のローカル変数を宣言することはできません)。
最後に、これについて詳しく説明します。JS、C、C とは異なり、C# にはグローバル変数やグローバル関数はありません。変数と関数は型内で宣言する必要があります (すべてがクラス内にあります)。
3. データ型
JS データ型: 6 つの基本データ型と 1 つの参照データ型。
基本データ型 | 数値、文字列、ブール値、未定義、Null、シンボル(es6) |
参照 (複合) データ型 | オブジェクト (関数、配列、正規表現、および基本データ型以外のその他の型を含む) |
C# データ型: 16 の事前定義型とユーザー定義型。
11 数値型 |
整数型: sbyte、byte、short、ushort、int 、uint、long、ulong 浮動小数点型: 10 進数、float、double |
1 Unicode 文字型 | char |
bool | |
string (Unicode 文字配列)、 |
object (すべての型の基本クラス)、 dynamic (動的言語で書かれたアセンブリを使用する場合に使用) |
class | |
struct | |
array | |
enum | |
デリゲート | #インターフェイス タイプ |
以上がC# と JavaScript の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。