2

さまざまなオブジェクト タイプを保持できる配列が必要で、なんらかの形式の継承を使用する必要があると考えていましたが、Javascript ではデフォルトで既に機能していることに気付きました。

var someArray = [];

someArray.push("Hello World");
someArray.push(12);
someArray.push(false);

alert(someArray.pop());
alert(someArray.pop());
alert(someArray.pop());

JSFiddleで動作するようです。これはばかげた質問かもしれませんが、このようなことをして何か問題がありますか? C、C++、C#、VB .NET などの私のバックグラウンドでは、配列は単一の型である必要があるため、この種のことは魔法のように思えます。この種のことをしても大丈夫ですか、それとも虫や抜け毛につながるだけですか?

4

2 に答える 2

4

配列は JavaScript で厳密に型指定されていないため、問題はありません...

于 2012-06-11T15:24:46.647 に答える
2

Javascript は動的言語であり、その配列は厳密に型指定されていないため、問題ありません。
これもそうです:

var x = 12;     // Number
    x = "12";   // String
    x = {};     // Object
    x = [];     // Array.
    ...

すべての変数は、すべてのタイプのオブジェクトを保持できます。配列だけではありません...次のような演算子
を使用すると:typeof

if (typeof x === "string")

x 変数タイプを「照会」するのではなく、それが保持する値を照会します。

  • C#, java, c++ ...: 変数のデータ型を宣言する必要があります (静的型付け)。
  • Javascript: 変数のデータ型が宣言されていません (動的型付け)。
于 2012-06-11T15:25:18.207 に答える