在下面的Javascript代码中,变量被赋值为
[]
,这是什么意思?var openTollDebug = [];
[]
,这是什么意思?var openTollDebug = [];
这是一个数组字面量。它与声明 new Array()
不完全相同 - 在JavaScript中,Array对象可以被覆盖,但数组字面量不行。下面是一个示例来说明:
// let's overwrite the Array object
Array = function(id) {
this.id = id;
}
var a = new Array(1);
var b = [];
console.log(a.hasOwnProperty("id")); // true
console.log(b.hasOwnProperty("id")); // false
console.log(a.push); // false, push doesn't exist on a
console.log(b.push); // true, but it does on b
b.push(2);
console.log(b); // outputs [2]
var openTollDebug = [];
声明openTollDebug
变量并将其初始化为空数组。要向数组中添加元素,可以执行以下操作:
var stringArray = ['element1', 'element2', 'element3'];
alert(stringArray[1]); // displays 'element2'
var numberArray = [1, 2, 3, 4];
alert(numberArray[2]); // displays 3
var objectArray = [{ name: 'john' }, { name: 'peter' }, { name: 'tom' }];
alert(objectArray[1].name); // displays 'peter'
这是一个空数组,等同于
var openTollDebug = new Array();
这是一个空数组的简写,与new Array()相同。 另外,{}代表一个空对象。在JavaScript中,对象类似于哈希表,因此可以将其用作字典。
它创建一个空数组。
这是一种拥有非空对象的好方法。
在JavaScript中,很容易向该对象添加函数和属性。例如:
openTollDebug.title = 'hello world';
openTollDebug.show = function(){alert('Debug');};
作为一个数组,您可以添加项目:
openTollDebug.push('added item');
openTollDebug[3] = 'just add anywhere';
var openTollDebug = [];
等同于
var openTollDebug = new Array();
只需知道出于性能原因,使用[]更受欢迎。
还有其他字面量,如对象字面量。
var MyObject = {
name:'default',
age:22,
hobbies:["golf","video games","otherstuff"]
}
由于性能方面的考虑,请尽量使用字面值。不要编写
var obj = new Object({name: 'John'})
你只需要写
var obj = {name: 'John'}
你也不写
button.onclick = new Function("alert('Clicked!')");
你写
button.onclick = function () { alert('Clicked') }
这里有一个关于此的精彩博客文章的链接
var b = [] //it is an array literal.
Array
没有被覆盖,new Array()
和[]
在功能上是相同的。 - Tim Downnew Array(5)
不同于[5]
:) - Russ Cam[]
和new Array()
不完全相同,因为后者基于Array
尚未被覆盖的条件。 - Russ Cam[]
构造函数? - Pacerier