&引用;[],散列“;JavaScript中的语法?

&引用;[],散列“;JavaScript中的语法?,javascript,Javascript,我是JavaScript新手。在下面的代码段(from)中,[],hash语法是什么意思?我找了一点,但没有运气 function getUrlVars() { var vars = [], hash;// <============= HERE var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for(var i = 0; i

我是JavaScript新手。在下面的代码段(from)中,
[],hash
语法是什么意思?我找了一点,但没有运气

function getUrlVars()
{
    var vars = [], hash;// <============= HERE
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}
函数getUrlVars() {
var vars=[],hash;//这只是多个变量的正常声明

var vars = [], hash;

var vars = [];
var hash;

语法:

var varname1 [= value1 [, varname2 [, varname3 ... [, varnameN]]]];

这只是多个变量的正常声明

var vars = [], hash;

var vars = [];
var hash;

语法:

var varname1 [= value1 [, varname2 [, varname3 ... [, varnameN]]]];

当您应该查看整行时,您正在查看
[],hash
,即:

var vars = [], hash;
整体而言,您有一个变量声明,它采用逗号分隔的变量名称列表。这些名称是
vars
hash
,最好格式化为:

var vars,
    hash;
在该声明中,有一个变量赋值给
vars
变量


[]
是JavaScript中的数组文字。因此,最后您声明了
vars
,用一个新的空数组值初始化了它,并声明了
hash
,但没有初始化它(值将是
未定义的
)。

您看到的是
[],hash
当您应该查看整行时,即:

var vars = [], hash;
整体而言,您有一个变量声明,它采用逗号分隔的变量名称列表。这些名称是
vars
hash
,最好格式化为:

var vars,
    hash;
在该声明中,有一个变量赋值给
vars
变量


[]
是JavaScript中的数组文字。因此,最后您声明了
vars
,用一个新的空数组值初始化了它,并声明了
hash
,但没有初始化它(值将是
未定义的
).

该代码将这两个概念结合在一起,使新手无法理解该代码:

一,。 声明数组有两种方法:

// 1 (old school)
var myArray = new Array();

// 2 (the easiest and most common)
var myArray = [];
二,。 您可以使用逗号一次性声明多个变量(设置或不设置其值):

// Declaring 3 variables
var a, b, c;
// or
var a=1, b=2, c=3;

该代码将这两个概念结合在一起,使新手无法理解代码:

一,。 声明数组有两种方法:

// 1 (old school)
var myArray = new Array();

// 2 (the easiest and most common)
var myArray = [];
二,。 您可以使用逗号一次性声明多个变量(设置或不设置其值):

// Declaring 3 variables
var a, b, c;
// or
var a=1, b=2, c=3;

var-vars=[]
定义了一个名为
vars
的空数组,
hash
是一个局部变量,其值为
undefined
。这与
var-vars=[];
var hash;
。就代码的其余部分而言,它有点糟糕:两个
var
语句,其中一个有多个声明,错误地解析了查询字符串的URL(可能只是
location.search
),尝试将数组用作哈希映射而不是对象。请删除此代码并使用库。@ZZZBOV我正在尝试在页面上执行一些常见任务,例如获取查询字符串参数。有什么库可推荐吗?我不太熟悉JavaScript landscope。在NPM land(节点、浏览器化等)中该库对于大多数使用来说都足够可靠,但是它不能处理一些边缘情况,因此它使用UMD。
var vars=[]
定义了一个名为
vars
的空数组,
hash
是一个值为
undefined
的局部变量。它与
var vars=[];
var hash;
。就代码的其余部分而言,它有点糟糕:两个
var
语句,其中一个有多个声明,错误地解析了查询字符串的URL(可能只是
location.search
),尝试将数组用作哈希映射而不是对象。请删除此代码并使用库。@ZZZBOV我正在尝试在页面上执行一些常见任务,例如获取查询字符串参数。有什么库可推荐吗?我不太熟悉JavaScript landscope。在NPM land(节点、浏览器化等)中该库对于大多数使用来说都足够可靠,但是它不能处理一些边缘情况,因此它使用UMD。看起来
vars
打算用作
dictionary
。但是基于我对JS对象的有限知识,最好不要使用真正的数组。对吗?@smwikipedia
vars
是一个数组,在JS中是一个数组(嗯,不是所有的)都是一个对象,所以你也可以为数组分配属性。看起来
vars
应该用作
字典
。但是基于我对JS对象的有限知识,最好不要使用真正的数组。对吗?@smwikipedia
vars
是一个数组,在JS中是所有的(不是所有的)是一个对象,因此您也可以为数组指定属性。