资讯专栏INFORMATION COLUMN

一个非常有趣的面试题

ThinkSNS / 2254人阅读

摘要:下面这道面试题是新鲜出炉,最近一次笔试的时候遇到的,当时直接就懵逼了。第五问输出,这一问涉及到函数运算优先级问题,具体参考这里,和成员访问的优先级都为,所以这一问相当于一个实例后,访问的方法是上的,所以结果是

下面这道面试题是新鲜出炉,最近一次笔试的时候遇到的,当时直接就懵逼了。

然后在GitHub上咨询了mqyqingfeng,非常感谢这位博主对我的耐心解答!!

            function Foo(){
                getName = function(){
                    console.log(1);                    
                };
                return this;
            }
            
            Foo.getName = function(){
                console.log(2);
            };
            
            Foo.prototype.getName = function(){
                console.log(3);
            };
            
            var getName = function(){
                console.log(4);
            };
            
            function getName(){
                console.log(5);
            };
            
            Foo.getName();
            getName();  
            Foo().getName(); 
            new Foo.getName();
            new Foo().getName()
            new new Foo().getName();

第一问Foo.getName()输出2,不解释

第二问getName()输出4,因为getName函数声明会被提前,然后被函数表达式var var getName = function(){console.log(4);}所覆盖,所以输出4。

第三问Foo().getName()输出1,当函数Foo()执行完后,函数内的变量getName没有用关键字var定义,此时getName默认指向了window,相当于全局定义的getName再次被覆盖。而Foo()返回的this也是指向window,所以这一问相当于this.getName(),结果自然就是1了。

第五问new Foo().getName()输出3,这一问涉及到函数运算优先级问题,具体参考这里,new和成员访问的优先级都为19,所以这一问相当于(new Foo()).getName();new一个实例后,访问的方法是prototype上的,所以结果是3

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/83081.html

相关文章

  • 面试集 - 收藏集 - 掘金

    摘要:计算数组的极值微信面试题获取元素的最终前端掘金一题目用代码求出页面上一个元素的最终的,不考虑浏览器,不考虑元素情况。 Excuse me?这个前端面试在搞事! - 前端 - 掘金金三银四搞事季,前端这个近年的热门领域,搞事气氛特别强烈,我朋友小伟最近就在疯狂面试,遇到了许多有趣的面试官,有趣的面试题,我来帮这个搞事 boy 转述一下。 以下是我一个朋友的故事,真的不是我。 ... ja...

    crossea 评论0 收藏0
  • 有趣闭包

    摘要:金三银四搞事季,前端这个近年的热门领域,搞事气氛特别强烈,我朋友小伟最近就在疯狂面试,遇到了许多有趣的面试官,有趣的面试题,我来帮这个搞事转述一下。小伟,你说说这几行代码会输出什么当面试官在打出这几行代码时,我竟有点蒙蔽。 金三银四搞事季,前端这个近年的热门领域,搞事气氛特别强烈,我朋友小伟最近就在疯狂面试,遇到了许多有趣的面试官,有趣的面试题,我来帮这个搞事 boy 转述一下。 以下...

    awesome23 评论0 收藏0
  • 记一次XX前端面试

    摘要:面试官说那我问你一个哲学的问题,为什么有数据结构这种东西哇,这是啥,巴拉巴拉扯了一通,大致就是物以类聚,人以群分,先人积累下来的经验,这些让我们更方便处理数据啥的。 前因,没有比摸鱼有趣的事了 距离自己被外派(俗称外包)出去,已经过了快五个月,工作的话,很闲。人啊,一定保持好的习惯,懒惰是会上瘾,日常摸鱼,怀疑人生,我是谁,我在哪,我要干什么。 中午吃饭的时候,收到了boss直聘的一条...

    Shisui 评论0 收藏0
  • 前端经典文章

    摘要:上周末看这篇文章时,偶有灵光,所以,分享出来给大家一起看看前端面试四月二十家前端面试题分享请各位读者添加一下作者的微信公众号,以后有新的文章,将在微信公众号直接推送给各位,非常感谢。 前端切图神器 avocode 有了这个神器,切图再也腰不酸,腿不疼了。 这一次,彻底弄懂 JavaScript 执行机制 本文的目的就是要保证你彻底弄懂javascript的执行机制,如果读完本文还不懂,...

    lowett 评论0 收藏0
  • 别人家面试:统计“1”个数

    摘要:长话短说,让我们来看一道题统计的个数给定一个非负整数,对于任意,,计算的值对应的二进制数中的个数,将这些结果返回为一个数组。第二版本的时间复杂度是最后版本的时间复杂度是,是的二进制数中的的个数,介于之间。 小胡子哥@Barret李靖给我推荐了一个写算法刷题的地方leetcode.com,没有ACM那么难,但题目很有趣。而且据说这些题目都来源于一些公司的面试题。好吧,解解别人公司的面试题...

    SQC 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<