美文网首页
2017.08.16百度一面

2017.08.16百度一面

作者: 云峰yf | 来源:发表于2017-08-17 00:21 被阅读0次

    前言

    才面完蘑菇街就收到了百度的短信,没办法,面吧

    面试题

    1.自我介绍

    这次真是超级后悔提Angular

    2.为什么要用依赖注入,它的好处是什么?

    它是一种设计模式,可以让类从外部源中获得它的依赖,而不必亲自创建它们。最大的好处是让使用者和被使用者解耦,从而反转依赖。

    3.有没有用过Angular的工厂?

    没有,ag2 以后的factory和 ag1 的有比较大的区别,ag2 弱化了 factory 模式,不过了解一点工厂模式:定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类。工厂方法让类的实例化推迟到子类中进行。不过当工厂需要实例化的类越来越多时,工厂类将变成由相互依赖的工厂方法构成的巨型蜘蛛网。

    4.ES6的模块化是什么?import进来直接用和Angular的依赖注入进来用有什么区别?

    import和export导入导出模块,一个文件就是一个模块,最主要的区别是依赖前置和依赖反转。

    5.数据类型有哪几种?引用和基本数据类型的区别?

    7种,number、string、boolean、null、undefined、object、Symbol。
    基本放堆里,引用放栈里,引用数据类型会有修改一个变量,导致和它相同引用的变量也被修改的情况。

    6.谈谈原型链,Object.prototype的原型是什么?

    原型链是JS这门基于原型编程范式的基础,它把所有对象都看做是Object的派生,每个对象都有原型对象,使用prototype和__proto__来标识,当然Object.getOwnProperty()也可以获取原型,当我们需要一个对象的属性时,它会沿着原型链一级一级向上找。
    null

    7.对象浅拷贝怎么做?使用JSON.parse(JSON.stringify(...))的方法有什么坏处?

    Object.assign()或者先转JSON再转回对象,对象只有属性被拷贝过来。

    8.谈谈闭包,解释一下闭包中变量在内存中的形态?闭包的实际应用场景有哪些?

    闭包是指这样的作用域,它包含有一个函数,这个函数可以调用被这个作用域所封闭的变量、函数或者闭包等内容。通常我们通过闭包所对应的函数来获得对闭包的访问。
    闭包里的变量在内存中是不会被清除的,如果循环引用会引起内存泄露。
    当函数可以记住并访问所在的词法作用域时,就产生了闭包,即使函数是在当前词法作用域之外执行。
    词法作用域的查找规则只是闭包的一部分。
    IIFE是封闭的闭包。
    应用场景:创建一个模块(保护变量),必须有外部的封闭函数,然后至少被调用一次。封闭函数必须返回至少一个内部函数,这样内部函数才能在私有作用域中形成闭包。

    9.你为什么选择学node?它和多线程语言相比有什么缺点和优点?node有可能会出现java中的死锁吗?

    前后端同构,成本小。异步执行,非阻塞式,事件驱动,某些方面速度和效率没有java、go之类的语言高。node不会出现锁,因为根本不允许使用锁。

    10.谈谈JS中的对象和类,class在JS中的实现是什么样的?

    详情请看另一篇文章Javascript的面向对象

    11.typeof Funcion答案是什么?

    "function"

    相关文章

      网友评论

          本文标题:2017.08.16百度一面

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