Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
x=[x]&;之间的javascript数组混淆&;x、 当变量为x时,按下(x);_Javascript_Arrays - Fatal编程技术网

x=[x]&;之间的javascript数组混淆&;x、 当变量为x时,按下(x);

x=[x]&;之间的javascript数组混淆&;x、 当变量为x时,按下(x);,javascript,arrays,Javascript,Arrays,为什么案例1给出:error:TypeError:x在第行没有定义 //案例1 var x; x、 推(x); 控制台日志(x)在案例一中,行x.push(x)将抛出错误-当然,您不能访问未定义的对象的属性 在第二种情况下,x未在行x=[x]处定义已运行,但您没有试图访问x或类似的任何属性-它只是一个未定义的值,这是正常的。因此,表达式[x]生成一个包含一个项的数组,x(这是未定义的),因此[undefined]在第一种情况下,行x.push(x)将抛出错误-当然,您不能访问未定义的对象的属性

为什么案例1给出:error:TypeError:x在第行没有定义

//案例1
var x;
x、 推(x);

控制台日志(x)在案例一中,行
x.push(x)x
,code>将抛出错误-当然,您不能访问
未定义的
对象的属性


在第二种情况下,
x
未在行
x=[x]处定义
已运行,但您没有试图访问
x
或类似的任何属性-它只是一个
未定义的
值,这是正常的。因此,表达式
[x]
生成一个包含一个项的数组,
x
(这是
未定义的
),因此
[undefined]
在第一种情况下,行
x.push(x)x
,code>将抛出错误-当然,您不能访问
未定义的
对象的属性


在第二种情况下,
x
未在行
x=[x]处定义
已运行,但您没有试图访问
x
或类似的任何属性-它只是一个
未定义的
值,这是正常的。因此,表达式
[x]
生成一个包含一个项的数组,
x
(这是
未定义的
),因此
[undefined]
要想将任何值推送到
x
,必须首先说它是这样的数组

var x = [];

About变量显示为undefined,因为javascript中的任何变量在没有赋值的情况下默认为undefined。

要将任何值推送到
x
,必须首先说明它是这样的数组

var x = [];

关于变量显示为未定义,因为javascript中的任何变量在没有赋值时默认为未定义。

案例1

您正在尝试调用
未定义的
上的
.push()

var x; // x is declared but value is undefined
x.push(x); // .push() can be invoked only on array types - that's why you get the error
console.log(x); // error happens before this line
案例2

是JavaScript中的一个值。您正在使用一个条目创建数组-
未定义

var x; // x is undefined
var x = [x]; // x = [undefined] - an array with one entry - undefined
console.log(x); // prints the array

案例1

您正在尝试调用
未定义的
上的
.push()

var x; // x is declared but value is undefined
x.push(x); // .push() can be invoked only on array types - that's why you get the error
console.log(x); // error happens before this line
案例2

是JavaScript中的一个值。您正在使用一个条目创建数组-
未定义

var x; // x is undefined
var x = [x]; // x = [undefined] - an array with one entry - undefined
console.log(x); // prints the array

有一些事情需要解释:

  • 当您声明变量时,
    undefined
    是默认值。直到您设置任何其他类似
    var x=''
  • [].push()
    仅在阵列上可用 因此,在这两种情况下:

    案例:1 案例:2
    有一些事情需要解释:

  • 当您声明变量时,
    undefined
    是默认值。直到您设置任何其他类似
    var x=''
  • [].push()
    仅在阵列上可用 因此,在这两种情况下:

    案例:1 案例:2
    在案例1中,
    x
    未定义,因为它没有值
    push()
    是一个数组方法,而
    typeof(x)
    将返回undefined。在案例2中,
    x
    在第一个声明中仍然未定义。在第二个声明中,您将其设置为数组,但给它一个未定义的值。在案例1中,
    x
    未定义,因为它没有值
    push()
    是一个数组方法,而
    typeof(x)
    将返回undefined。在案例2中,
    x
    在第一个声明中仍然未定义。在第二个声明中,您将它设置为数组,但给它一个未定义的值。