前端面试总结——读书郎

作者: Canace22 | 来源:发表于2018-06-07 20:06 被阅读18次

    前几天在拉勾投的简历,今天下午下班后去面试,总的感觉是面试很专业很基础,自己太不专业了,大三到现在也只是自己写写小项目自己玩,真正聊技术的话,一点都不专业,专业名词没几个能说的上来,想到之前工作中用到的很多python知识点自己也是说不上来,只是会用,后来看到别人的教程,才知道自己一直用的东东原来是有专业名词的。

    下面是面试的题目:

    1. js 知识点考察:
    function fun(){
        console.log(this)
    }
    fun()
    b = new fun()
    console.log(b)
    

    (1) 以上结果分别是什么?

    第一个 this 指向全局作用域,所以打印的应该是window,这个我当时一时没反应过来,知道是指向全局作用域,但是具体打印出来的是什么,没反应过来。

    第二个b是fun函数的实例,继承了fun函数的所有特性,但是由于没有给这个实例传参,所以结果是undefined,这个我知道打印出来的是undefined,也知道原因,但是没有按着面试官走,没把实例这个名词说出来。

    var a = 1
    function fun(){
        console.log(a)
        if(true){
            var a = 2
            console.log(a)
        }
        console.log(a)
    }
    fun()
    console.log(a)
    

    (2) 以上代码打印出来的分别是什么?为什么?

    第一个a打印出来是 undefined,因为作用域内不存在这个参数,默认返回undefined。第二个a打印出来是2,因为在if内申明了局部变量a并把2赋值给了这个参数。第三个a打印出来同样是2,因为这条语句在if作用域的下面,代码树是往下延伸的。第四个a打印出来是a,因为a=1属于这个作用域,而函数里的a它是共享不到的,要共享函数内的参数的话,可以用闭包。

    (3)第三个问题没太懂,问的是function除了argument外还有哪些内置xx?这个我没听清的用xx表示吧,你们懂的告诉我一声。

    1. 算法知识点考察

    (1)说说快排,这个我当时有点蒙圈了,因为好久之前接触的东东,都忘了,回来后补充解释如下:

    快速排序是从目标数据中任意选取一个数据,以这个数据的值为分割点,把目标数据分割为两部分。这样循环操作下去进行排序。这个在代码中用的挺多的,但是我没记住它的学名,没想起来。这个解释摘自我大二时候读《写给大家的算法书》的算法基础部分的笔记。

    (2)说说冒泡排序,同上,没打出来,回来后补充解释如下:

    冒泡排序是对比相邻的两个数据,根据大小关系调整两个数据的顺序。同样摘自大二的读书笔记。

    除了这些还有一些零零碎碎的知识点,我就不一一罗列了,列出这几个典型的吧,可能面试经验比较少,很多东西都准备不充分,背着自己的电脑就过去面试了,面试问到项目就拿出了自己的一些小项目出来,也比较随意,结果是其次,最主要的是面试挺欢乐,知道了自己在前端算法这一块还很薄弱,接下来得好好学学数据结构和算法了。
    以上内容首次发布于我的个人博客

    相关文章

      网友评论

      • 帅气的奶盖:第二题a=undefined 不是因为局部没有变量,而是if里面生命了 var a = 2,而变量声明会提升,也就是在第一个console.log(a)前面会加上一行var a = undefined,所以才打印的undefined,不信你把if去掉,结果打印的上外面的1。第三个问题应该是想问你内置参数吧, 除了arguments还有this~

      本文标题:前端面试总结——读书郎

      本文链接:https://www.haomeiwen.com/subject/ibdnsftx.html