x=[x]&;之间的javascript数组混淆&;x、 当变量为x时,按下(x);
为什么案例1给出:error:TypeError: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
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
在第一个声明中仍然未定义。在第二个声明中,您将它设置为数组,但给它一个未定义的值。