2016-09-17 5 views
0

я не могу понять, если заявление и то, что он говорят, и почему нет другого заявленияЕсли (tosString.call (вход)! == «[объект массив]» не может понять это

function max(input) { 
     if (toString.call(input) !== "[object Array]") 
      return false; 
     return Math.max.apply(null, input); 
     } 

    console.log(max([12,34,56,1])); 
    console.log(max([-12,-34,0,-56,-1])) 

; 
+0

Современный код будет use 'if (! Array.isArray (input)) return false;' – Bergi

ответ

1

условие в Условный оператор проверяет, если входной массив.

Вам не нужно оператор еще в функции, где есть оператор возврата внутри истинной ветви, если заявление.

в в этом случае что-либо после инструкции if будет выполняться только тогда, когда условие ложно.

0

Это проверяет завязку параметра input является Array.

По умолчанию реализация массива String() возвращает строку [object Array], поэтому мы проверяем это, чтобы убедиться, что значение имеет тип Array. Вы можете напрямую позвонить toString() на input, но тогда вы должны убедиться, что input имеет другое значение, чем null или undefined, так что вместо этого мы вызываем метод window ToString() объекта, но контекст в качестве значения input

Смежные вопросы