Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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,也许我问得不对,但我主要想知道创建一个带有和不带“new”关键字的数组有什么区别?什么时候使用合适 var myPix = new Array("Images/pic1.jpg", "Images/pic2.jpg", "Images/pic3.jpg"); 我知道“new”关键字会创建一个新对象。但是,既然我正在创建一个保存数组对象的变量,那么数组不是仍然是在不使用“new”的情况下创建的吗 最后,我不能简单地使用这个吗 var myPix = ["Images/pic1.jpg", "I

也许我问得不对,但我主要想知道创建一个带有和不带“new”关键字的数组有什么区别?什么时候使用合适

var myPix = new Array("Images/pic1.jpg", "Images/pic2.jpg", "Images/pic3.jpg"); 
我知道“new”关键字会创建一个新对象。但是,既然我正在创建一个保存数组对象的变量,那么数组不是仍然是在不使用“new”的情况下创建的吗

最后,我不能简单地使用这个吗

var myPix = ["Images/pic1.jpg", "Images/pic2.jpg", "Images/pic3.jpg"];

这两种方法都可以

在JavaScript中,所有内容都是一个对象,包括数组,实例化的典型方式是使用关键字new。但是,对于包括数组在内的少数情况,可以通过如下方式声明数组来避免这种情况:

var arr = [3,45,43,4]; 
但是,创建阵列的第二种方法(使用
[]
)是首选方法,因为:

  • 它更简单
  • 它更快
  • 请参阅此处的讨论-

    在Javascript中,“类”实际上是它们自己的构造函数/初始值设定项函数。
    Array
    函数就是一个例子。当您调用
    new Array
    时,Javascript首先创建一个未初始化的对象,然后调用
    Array()
    ,将该新对象作为
    this
    。如果运行
    Array()

    通过其内置类型函数,如
    Array
    ,Javascript将为您创建对象,即使在没有
    new
    的情况下调用该对象;他们“做正确的事”,因为他们是这样写的。您自己的类型函数不会如此周到,除非您特意对它们进行编码


    一般来说,如果你在寻找简写符号,你应该只使用括号形式。

    使用新数组(“a”、“b”、“c”)相当于[“a”、“b”、“c”]。后者称为Javascript对象表示法,更像是python等ala语言的脚本。无论哪种情况,返回的对象仍然是一个数组。

    “最后,我不能同样轻松地使用它吗?”-是的,你应该这样做。是的,事实上,我建议那些征求我意见的人(几乎)忘记数组构造函数这一概念。使用
    []
    表示法可以减少键入。“最后,我不能同样轻松地使用它吗?”YupCreating'new Array()'只是在codingnew中进行编码的classc形式。在本机基元构造函数(字符串、数字、对象、RegExp等)上,new是可选的。除了Date(),这个东西很奇怪……这是一个数组文字;它不是JavaScript对象表示法(JSON),它不应该是
    var arr=[3,45,43,4]