Javascript - 所有数组都是文字的吗?

Str*_*ers 4 javascript arrays literals

我正在阅读Mozilla Javascript文档,我对使用"literal"这个词感到有点困惑.具体来说,Javascript中的所有数组都被认为是"数组文字".

  • 如果不是,请你提供一个非文字数组的例子.
  • 如果是,请你提供一个具有文字和非文字变量的变量的例子(假设存在这样的事物)并解释它与数组的不同之处.

Pac*_*ac0 8

数组文字表示编写为代码的数组值,如下所示:[4, 5, 6]

let array1 = [4,5,6]; // array created with an array litteral
console.log(array1);
Run Code Online (Sandbox Code Playgroud)

一个阵列,是与该类型阵列的对象.

例如,您可以通过编写数组文字或其他方式来创建数组(通过使用Array构造函数创建另一个答案),或者使用split函数:"4 5 6".split(' ');

let myString = '4 5 6';
let array2 = myString.split(' ' ); // we get an array from split, but no literal was used
console.log(array2);
Run Code Online (Sandbox Code Playgroud)

split函数的结果也是一个数组,但它不是在代码中字面写的.


mel*_*ene 8

数组是一种值(它可以存储在变量中,传递给函数等).

数组文字是一种语法.具体来说,它指的是[ ... ](其中...是逗号分隔的值列表).

执行数组文字会在运行时创建一个数组.但是,还有其他方法可以创建数组:

var x = new Array();
Run Code Online (Sandbox Code Playgroud)

x 包含一个不是从文字创建的数组.

同样,也有产生字符串,但只有各种操作"...",并'...'有串文字.