0

我不明白var a = [], i这里。如何既a可以声明为数组又可以声明 i 的类型是什么?

    // Source: Javascript: The Good Parts, p. 63
    Array.dim = function (dimension, initial) {
         var a = [], i;
         for(i = 0; i< dimension; i +=1)
         {
            a[i] = initial;   
         }
        return a;
    }
4

5 回答 5

3

这意味着(分别)声明两者 - 不声明它们相等

与以下内容相同:

var a = [];
var i;
于 2012-12-06T03:56:10.153 回答
2

以下代码:

var a = [], i;

与此代码完全相同

var a = [];
var i;

它的意思是:

  1. a是一个空数组
  2. i是一个未初始化的 var
于 2012-12-06T03:59:25.007 回答
1

Javascript 变量没有类型。

a初始化为一个数组;i根本没有初始化。

没有什么能阻止你以后写作

a = 42;
i = ["Hi", "there!"];
于 2012-12-06T03:58:09.760 回答
0

Javascript 变量没有任何类型。这里 a 被初始化为一个数组

var a = []; //Same as var a= new Array(); 

我可以有任何价值

var i = 0;// Here it is an integer
i = "Hello";// String. Type changed to string. But it is not a good practice

读取JavaScript 变量和数据类型

于 2012-12-06T04:05:26.950 回答
0

var a = [], i字面意思是将 a 定义为数组并将 i 定义为变量。实际上没有分配给 i。

例如:

var a = 5,
    b = 8,
    c = "string";

这基本上允许您定义 3 个变量,而不必使用 var 一词 3 次。速记 JavaScript。

在使用变量之前定义变量可以防止在变量不存在时出错,从而使函数更加可靠。例如,不将 x 定义为变量将导致:

if(x) { /* native code */ }

抛出错误但是:

if(window.x) { /* native code */ }

不会,因为它会检查存储所有全局变量的 x 窗口对象。

于 2012-12-06T04:01:49.267 回答