2013-09-01 2 views
5

Как заголовок говорит все, typeof (Array, null) возвращает object и typeof(null, Array) возвращает function.typeof (Array, null) возвращает объект и типof (null, Array) возвращает функцию

Он возвращает тип второго параметра.

Почему?

+0

Вопрос об интервью? Надеюсь, что это не собеседование. – putvande

ответ

7

Поскольку

  • typeof является оператором, а не функция, так typeof(expr) является typeof expr с exprevaluated first
  • a,b returns b

Так

typeof (a, b) возвращает typeof b

и в вашем случае

  • typeof (Array, null) является typeof nullwhich is "object"
  • typeof(null, Array) является typeof Array и Array является функцией.
+0

Почему '(a, b)' возвращает b? – 2619

+3

@ 2619 [Comma operator] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comma_Operator) – Andreas