我对JavaScript undefined和null价值观有点困惑.
什么是if (!testvar)真正做到?它测试undefined和null或只undefined?
一旦定义了变量,我可以将其清除undefined(因此删除变量)吗?
我可以undefined作为参数传递吗?例如:
function test(var1, var2, var3) {
}
test("value1", undefined, "value2");
Run Code Online (Sandbox Code Playgroud) 我正在做一些基于这篇博客文章的小实验.
我正在谷歌Chrome的调试器中进行这项研究,这是困难的部分.

我得到的事实是我无法删除局部变量(因为它们不是对象属性).我知道我可以"读出"从名为'arguments'的数组传递给函数的所有参数.我甚至得到它,我不能删除和数组的元素,只有实现array[0]有一个未定义的值.
有人可以向我解释undefined x 1嵌入式图像的含义吗?
当我覆盖函数foo返回时arguments[0],我得到通常的'正常'未定义.
这只是一个实验,但似乎有趣,有人知道是什么意思undefined x 1吗?
在Javascript中,为什么
> var myArray = new Array(3);
Run Code Online (Sandbox Code Playgroud)
不同于:
> var otherArray = [*null*, *null*, *null*];
Run Code Online (Sandbox Code Playgroud)
?
Obs:(myArray == otherArray)退货false.
而且,我怎么能得到一个变量,就像otherArray一个充满'nulls'的数组,但是我想要的是什么尺寸?
编辑
[undefined, undefined, undefined]
Run Code Online (Sandbox Code Playgroud)
也不等于myArray.
如果我在JavaScript中有一个数组,请说:
var a = [1, 2, 3];
var b = ["Praveen", "Kumar", "Stack", "Overflow"];
Run Code Online (Sandbox Code Playgroud)
如果我得到上述数组的长度:
a.length;
b.length;
Run Code Online (Sandbox Code Playgroud)
我得到了正确的值.即
a.length; // 3
b.length; // 4
Run Code Online (Sandbox Code Playgroud)
但是,如果我创建另一个数组,我将索引设置为:
c = [];
c[5] = "Five";
c[10] = "Ten";
Run Code Online (Sandbox Code Playgroud)
然后,如果我查询长度,它会告诉我11.
c.length // 11
Run Code Online (Sandbox Code Playgroud)
这是错的吗?或者这样JavaScript解释数组?请指导.