Javascript - 所有数组都是文字吗?
Javascript - Are all arrays literal?
我正在通读 Mozilla Javascript documentation,我对 "literal" 这个词的用法有点困惑。具体来说,Javascript中的数组是否都被认为是"array literals"。
- 如果不是,请提供一个非文字数组的例子。
- 如果是,您能否提供一个具有文字和非文字变体的变量示例(假设存在这样的东西)并解释它与数组的不同之处。
数组文字是按以下方式创建的数组:
let arr = [1,2,3];
仅此而已。您也可以这样创建数组:
let arr = new Array(10);
数组字面量的作用是可以方便地同时声明和初始化数组。
let arr = []; // declaring;
arr[0] = 1;
arr[1] = 2;
// etc. = initializing
使用数组文字语法,我们可以同时执行这些步骤,这样可以使代码更简洁。
还有一个 Object literal 语法如下:
let obj = {prop1: 1}
这是 shorthand 用于:
let obj = new Object();
obj.prop1 = 1;
Array literal 表示写成代码的数组值,像这样:[4, 5, 6]
let array1 = [4,5,6]; // array created with an array litteral
console.log(array1);
一个数组,是一个数组类型的对象。
您可以通过编写数组文字或其他方式创建数组,例如(如另一个答案所述)使用 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);
split函数的结果也是一个数组,只是代码中没有按字面写
数组是一种值(它可以存储在变量中,传递给函数等)。
数组文字是一种语法。具体来说,它指的是 [ ... ]
(其中 ...
是以逗号分隔的值列表)。
执行数组文字会在运行时创建一个数组。但是,还有其他创建数组的方法:
var x = new Array();
x
包含一个不是从文字创建的数组。
同样,产生字符串的操作也有很多种,但只有"..."
和'...'
是字符串literals.
没有"literal array"和"non-literal array"。区别在于 "array literal" 和 "array value"。这里的一个 "literal" 是源代码中一个值的表示。例如,这是一个从数字文字 (42
) 初始化的变量:
let a = 42;
这里是一个被赋值的变量,这个值是计算出来的;此行中有两个文字(11
、31
):
let b = 11 + 31;
以同样的方式,{}
是我们可以描述为 "an empty array" 的值的文字。 [1, 2, 3]
是一个数组文字。 Array(1, 2, 3)
将创建相同的数组,但它不是数组文字;它通过调用一个函数来计算数组。
特别是对于编译语言,文字的值可以已经开始 "baked in" 进入可执行文件,这意味着在执行期间不需要花费时间来分配和初始化它们;它们已经存在于可执行文件的数据部分。例如,您可以在 C 和 Java 中看到这一点。
我认为只是句子的措辞让你感到困惑。让我换一种更容易理解的方式:
var array = [1, 2, 3]**;
这里[]
是数组字面量,1, 2, 3
是数组表达式。
希望对您有所帮助。
You use literals to represent values in JavaScript. These are fixed values, not variables, that you literally provide in your script
字面解释literal,就是我们按字面意思指定了一些值。它是 JavaScript 中的一种对象初始化器。
话虽如此,现在回答您的问题: Javascript 中的所有数组都被认为是 "array literals"?
Note : An array literal is a type of object initializer.
对我来说问题应该是 JavaScript 中的所有数组都使用 "array literals" 初始化了吗? 因为数组文字不是类型而是类型初始化数组的方法。
您可以使用如下不同的方法初始化数组:
let x = new Array(4);
console.log(x.length);
let y = new Array('a', 'b');
console.log(y);
let z = []; // Array literal
console.log(z.length);
let p = ['a', 'b', 6]; // Array literal
console.log(p);
我正在通读 Mozilla Javascript documentation,我对 "literal" 这个词的用法有点困惑。具体来说,Javascript中的数组是否都被认为是"array literals"。
- 如果不是,请提供一个非文字数组的例子。
- 如果是,您能否提供一个具有文字和非文字变体的变量示例(假设存在这样的东西)并解释它与数组的不同之处。
数组文字是按以下方式创建的数组:
let arr = [1,2,3];
仅此而已。您也可以这样创建数组:
let arr = new Array(10);
数组字面量的作用是可以方便地同时声明和初始化数组。
let arr = []; // declaring;
arr[0] = 1;
arr[1] = 2;
// etc. = initializing
使用数组文字语法,我们可以同时执行这些步骤,这样可以使代码更简洁。
还有一个 Object literal 语法如下:
let obj = {prop1: 1}
这是 shorthand 用于:
let obj = new Object();
obj.prop1 = 1;
Array literal 表示写成代码的数组值,像这样:[4, 5, 6]
let array1 = [4,5,6]; // array created with an array litteral
console.log(array1);
一个数组,是一个数组类型的对象。
您可以通过编写数组文字或其他方式创建数组,例如(如另一个答案所述)使用 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);
split函数的结果也是一个数组,只是代码中没有按字面写
数组是一种值(它可以存储在变量中,传递给函数等)。
数组文字是一种语法。具体来说,它指的是 [ ... ]
(其中 ...
是以逗号分隔的值列表)。
执行数组文字会在运行时创建一个数组。但是,还有其他创建数组的方法:
var x = new Array();
x
包含一个不是从文字创建的数组。
同样,产生字符串的操作也有很多种,但只有"..."
和'...'
是字符串literals.
没有"literal array"和"non-literal array"。区别在于 "array literal" 和 "array value"。这里的一个 "literal" 是源代码中一个值的表示。例如,这是一个从数字文字 (42
) 初始化的变量:
let a = 42;
这里是一个被赋值的变量,这个值是计算出来的;此行中有两个文字(11
、31
):
let b = 11 + 31;
以同样的方式,{}
是我们可以描述为 "an empty array" 的值的文字。 [1, 2, 3]
是一个数组文字。 Array(1, 2, 3)
将创建相同的数组,但它不是数组文字;它通过调用一个函数来计算数组。
特别是对于编译语言,文字的值可以已经开始 "baked in" 进入可执行文件,这意味着在执行期间不需要花费时间来分配和初始化它们;它们已经存在于可执行文件的数据部分。例如,您可以在 C 和 Java 中看到这一点。
我认为只是句子的措辞让你感到困惑。让我换一种更容易理解的方式:
var array = [1, 2, 3]**;
这里[]
是数组字面量,1, 2, 3
是数组表达式。
希望对您有所帮助。
You use literals to represent values in JavaScript. These are fixed values, not variables, that you literally provide in your script
字面解释literal,就是我们按字面意思指定了一些值。它是 JavaScript 中的一种对象初始化器。
话虽如此,现在回答您的问题: Javascript 中的所有数组都被认为是 "array literals"?
Note : An array literal is a type of object initializer.
对我来说问题应该是 JavaScript 中的所有数组都使用 "array literals" 初始化了吗? 因为数组文字不是类型而是类型初始化数组的方法。
您可以使用如下不同的方法初始化数组:
let x = new Array(4);
console.log(x.length);
let y = new Array('a', 'b');
console.log(y);
let z = []; // Array literal
console.log(z.length);
let p = ['a', 'b', 6]; // Array literal
console.log(p);