Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数组中有不同的对象,好吗?_Javascript_Arrays - Fatal编程技术网

Javascript 数组中有不同的对象,好吗?

Javascript 数组中有不同的对象,好吗?,javascript,arrays,Javascript,Arrays,我需要一个可以容纳不同对象类型的数组,我想我需要使用某种形式的继承,但后来意识到它在Javascript中已经默认工作了: var someArray = []; someArray.push("Hello World"); someArray.push(12); someArray.push(false); alert(someArray.pop()); alert(someArray.pop()); alert(someArray.pop()); 似乎在JSFIDLE中工作。这可能是个

我需要一个可以容纳不同对象类型的数组,我想我需要使用某种形式的继承,但后来意识到它在Javascript中已经默认工作了:

var someArray = [];

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

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

似乎在JSFIDLE中工作。这可能是个愚蠢的问题,但这样做有什么不对吗?在我的背景下,C、C++、C、VB、NET等数组需要是单一类型的,所以这种事情对我来说似乎很神奇。这样做可以吗,还是只会导致bug和头发拉扯?

数组在javascript中不是强类型的,所以没有问题……

javascript是一种动态语言,它的数组不是强类型的,所以它很好。
这也是:

var x = 12;     // Number
    x = "12";   // String
    x = {};     // Object
    x = [];     // Array.
    ...
每个变量都可以容纳每种类型的对象,不仅仅是数组…
使用
typeof
运算符时,如:

if (typeof x === "string")
您不是在“查询”x变量类型,而是它所包含的值。

    >代码> C,java,C++ +…>代码:必须声明变量数据类型(静态类型)。
  • Javascript
    :未声明变量数据类型(动态键入)
另一种说法:既然你从来没有在JS中声明过变量的类型,那么解释器怎么知道数组中应该和不应该有什么?没有类型声明;没有类型强制。@Flambino。这并不总是正确的,谷歌.NET
var
。或者阅读以下内容:“var.隐式类型的局部变量是强类型的,就像您自己声明了类型一样,但编译器确定了类型。”@Flambino:我只是认为它会根据插入的第一个对象来确定。@RyanPeschel。如果您熟悉C#,您应该知道
var
这里与
C#
中的情况不同……实际上,对于不是强类型的C#
ArrayList
,您也可以这样做。