如果(tosString.call(输入)!==" [object Array]"无法理解这一点

时间:2016-09-17 04:17:02

标签: javascript

我无法理解if语句及其说法以及为什么没有其他语句

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]))

;

2 个答案:

答案 0 :(得分:1)

if语句中的条件检查输入是否为数组。

在if语句的true分支中有一个return语句的函数中,你不需要else语句。

在这种情况下,if语句之后的任何内容只会在条件为false时运行。

答案 1 :(得分:0)

即检查input参数是否为Array

Array的默认toString()实现返回字符串[object Array],因此我们正在检查以确保该值的类型为Array。您可以直接在toString()上致电input,但是您需要确保input的值不是nullundefined,所以我们正在呼叫window对象的toString()方法,但上下文为input