前端笔试易错题目进行中

2017-08-29  本文已影响0人  白白白白白甲
  1. HTML的Doctype作用?严格模式与混杂模式如何区分?他们有何意义?

    1. <!DOCTYPE>声明位于文档的最前面,处于<html>标签之前。告知浏览器的解析器,用什么文档类型规范解析这个文档。
    2. 严格模式的排版和JS运作模式是以该浏览器支持的最高标准运行。在混杂模式中,页面以宽松的向后兼容的方式显示。模拟老式浏览器的行为以防止站点无法工作。
    3. DOCTYPE不存在或格式不正确会导致文档以混杂模式呈现。
  2. document.write和innerHTML的区别

    document.write只能重绘整个页面

    innerHTML可以重绘页面的一部分

  3. 列举异步编程的方法。
    回调函数,这是异步编程最基本的方法。

    事件监听,另一种思路是采用事件驱动模式。任务的执行不取决于代码的顺序,而取决于某个事件是否发生。

    发布/订阅,上一节的事件,完全可以理解为“信号”。

    Promises对象,Promises对象是CommonJS工作组提出的一种规范,目的是为异步编程提供统一接口。

  4. 用户从手机的浏览器访问www.baidu.com,看到的可能跟桌面PC电脑,是不太一样的网页效果,会更适合移动设备使用。请简要分析一下,实现这种网页区分显示的原因及技术原理。

    手机的网速问题、屏幕大小、内存、CPU等。通过不同设备的特征,实现不同的网页展现或输出效果。根据useragent、屏幕大小信息、IP网速、css media Query等原理,实现前端或后端的特征识别和行为改变。

  5. Flappy Bird是风靡一时的手机游戏,玩家要操作一只小鸟穿过无穷无尽的由钢管组成的障碍。如果要你在HTML前端开发这个游戏,为了保证游戏的流畅运行,并长时间运行也不会崩溃,请列举开发要注意的性能问题和解决的方法。

    1. 背景的卷轴效果优化。背景不能是无限长的图片拼接,必须有回收已移出的场景的方法。

    2. 将复杂运算从主UI线程中解耦。比如场景中小鸟的运动轨迹、碰撞算法等,需要在空闲时间片运算,不能和UI动画同时进行。

    3. 将比较大的运算分解成不同的时间片,防止阻塞主UI线程。最好使用webworker。

    4. 注意内存泄漏和回收。使用对象池管理内存,提高内存检测和垃圾回收。

    5. 进行预处理。将一些常用的过程进行预处理,

    6. 控制好帧率。将1秒分解成多个时间片,在固定间隔时间片进行UI动画,其他时间片用在后台运算。

  6. 给出伪元素(::before, ::after)的几种使用场景?

    1. 清除浮动时
    2. 利用attr()来实现某些动态功能时
    3. 与counter()结合实现序号问题,而不用使用列表元素
    4. 实现各种特效
上一篇下一篇

猜你喜欢

热点阅读