//找到下面的题目结果({}+{}).length([]+[]).length(function(){}).lengthThis这个问题乍一看可能会让你有点困惑。你可能会想:物与物相加能得到什么?你能找到它的长度吗?其实这道题还是挺考验Web前端开发工程师的。基本技巧看到这个题目,我们先来分析一下情况:1、两个空对象的相加({}+{})。"{}{}"的结果其实不是这样的,因为你忽略了字符串拼接时默认会调用相应的toString()方法。在空对象上调用toString()方法会得到什么?({}).toString()//[objectObject]”得到一个类似“[objectObject]”的字符串,长度为15,然后加上两个空对象后,其长度为30({}+{})。length//相当于({}.toString()+{}.toString()).length//也就是“[objectObject][objectObject]”,这个字符串的长度是302,([]+[]).length有了第一题的经验,那么你可能会这样想:两个空数组相加也一定是字符串拼接,它的toString()方法也会被调用,最终相当于求“[objectArray][objectArray]”字符串的长度,这样最后的结果就是28。但是,数组的toString()方法重写了[1,2,3].toString()//结果是”1,2,3"如果像这样对一个逗号分隔的空数组调用toString()方法,结果只会是一个空字符串""所以,这道题的最终结果是03,(function(){}).length有了前两个问题的经验,你可能自然会想到:这里的函数也会调用toString()方法。如果你这样想,你就被前两个问题给误导了:函数的长度就是它的形参个数,所以最后的结果是0。总结:学习前端知识是一个漫长而艰巨的过程。高楼大厦蒙蔽了双眼,却忽略了作为地基的钢筋混凝土。前端框架方兴未艾,也许再过几年就会有新的框架取代现在流行的三大框架(vue、react、angular),但是一切都一样,只是基础扎实,不管以后这些事情怎么变,你我只会淡淡一笑,只是一点点
