"undefined"和undefined有什么区别?

Blu*_*lub 20 javascript

我正在Chrome控制台中尝试此测验:测验

在试用它们之后,我可以稍微解释一下它们.但有一件事让我困惑:

var x = [typeof x, typeof y][1];
    typeof typeof x;
Run Code Online (Sandbox Code Playgroud)

....返回"字符串",这对我没有任何意义.

var x = [typeof x, typeof y][1]; 
Run Code Online (Sandbox Code Playgroud)

返回"未定义"

typeof "undefined"

返回"string",这有点意义,因为undefined在引号中.但总的来说,我没有看到与未定义共存的"未定义"的目的.那么,那是什么样的数组语法?"Javascript The Good Parts"表示没有多维数组.

Dav*_*ang 35

  1. undefined实际上window.undefined在大多数情况下.这只是一个变量.
  2. window.undefined恰好没有定义,除非有人定义它(尝试undefined = 1typeof undefined将会"number").
  3. typeof操作者总是返回一个字符串,描述值的类型.
  4. typeof window.undefined给你"undefined"- 再次,只是一个字符串.
  5. typeof "undefined"给出"string",就像那样typeof "foo".
  6. 因此,typeof typeof undefined给出"string".

与此语法相关:

[1, 2][1];
Run Code Online (Sandbox Code Playgroud)

那不是一个多维数组 - 它只是先创建一个数组arr = [1, 2],然后从中选择元素1 : arr[1].