前端面试题的做错的题(刷题才更新)

1、

fixed:生成绝对定位元素,相对于浏览器窗口进行定位。


2、

闭包问题,有点忘记了,明天再复习一下。


3、

函数体内,bb并没有使用var来定义,按理说这个bb在预处理的时候应该是window的属性。但在这里,函数声明的时候,带了一个参数bb,也就是相当于在函数体内声明了var bb。所以,函数里的bb就是函数活动对象的属性。所以函数执行时会输出2。函数执行完后,函数的活动对象被销毁,也就是局部的这个bb被删除了,执行流进入到window,再输出bb,值就是1了。


4、焦点事件:onfocus:元素获得焦点;    onblur:失去焦点。

  加载事件:onload:一张图片或者一个页面完全加载。


5、

  浏览器有两种呈现模式:标准模式和混杂模式(quirks mode)。在标准模式中,浏览器根据规范呈现页面,而混杂模式,向后兼容、宽松的方式呈现。

  DOCTYPE不存在或者格式不正确会导致文档以混杂模式呈现。

  DTD(文档类型定义)是一组机器可读的规则,他们定义 XML 或 HTML 的特定版本中允许有什么,不允许有什么。在解析网页时,浏览器将使用这些规则检查页面的有效性并且采取相应的措施。浏览器通过分析页面的 DOCTYPE 声明来了解要使用哪个 DTD ,由此知道要使用 HTML 的哪个版本。


6、

  border:5px solid red;(依次是border-widthorder-styleorder-color 

  C:当定义border:none时,表示无边框样式,浏览器并不会对边框进行渲染,也就没有实际的宽度;
  D:定义边框时,除了设置宽度外,还必须设置边框的样式才能显示出来。

7、CSS Sprites
  1.简介
  CSS Sprites在国内很多人叫css精灵,是一种网页图片应用处理方式。它允许将一个页面涉及到的所有零星图片都包含到一张大图中, 利用CSS的“background-image”,“background- repeat”,“background-position”的组合进行背景定位, 访问页面时避免图片载入缓慢的现象。
  2.优点
  (1)CSS Sprites能很好地减少网页的http请求,从而大大的提高页面的性能,这是CSS Sprites最大的优点,也是其被广泛传播和应用的主要原因;
  (2)CSS Sprites能减少图片的字节;
  (3)CSS Sprites解决了网页设计师在图片命名上的困扰,只需对一张集合的图片命名,不需要对每一个小图片进行命名,从而提高了网页制作效率。
  (4)CSS Sprites只需要修改一张或少张图片的颜色或样式来改变整个网页的风格。
  3.缺点
  (1)图片合并麻烦:图片合并时,需要把多张图片有序的合理的合并成一张图片,并留好足够的空间防止版块出现不必要的背景。
  (2)图片适应性差:在高分辨的屏幕下自适应页面,若图片不够宽会出现背景断裂。
  (3)图片定位繁琐:开发时需要通过工具测量计算每个背景单元的精确位置。
  (4)可维护性差:页面背景需要少许改动,可能要修改部分或整张已合并的图片,进而要改动css。在避免改动图片的前提下,又只能(最好)往下追加图片,但这样增加了图片字节。

8、浏览器的内核引擎,基本上是四分天下:
  (1)Trident: IE 以Trident 作为内核引擎;
  (2)  Gecko: Firefox 是基于 Gecko 开发;
  (3)WebKit: Safari, Google Chrome,傲游3,猎豹浏览器,百度浏览器 opera浏览器;
  (4)Presto: Opera的内核,但由于市场选择问题,主要应用在手机平台--Opera mini
    注:2013年2月Opera宣布转向WebKit引擎
    注:2013年4月Opera宣布放弃WEBKIT,跟随GOOGLE的新开发的blink引擎

9、cookie数据存储大小不能超过4k,而sessionStorage和localStorage存储大小一般不超过5M。sessionStorage和localStorage不会自动把数据发给服务器,仅在本地存储。

  preload是预先加载本页面;prefetch是预先加载,以备下一个导航/页面,优先级较前者低。

10、

使用typeof(类型)返回的结果 类型 结果
Number number
NaN
String string
Object object
null
Array
Function function
Undefined undefined
Boolean boolean
Symbol symbol

11、内存泄露

  定义:程序中已分配的堆内存由于某种原因程序未释放或者无法释放引起的各种问题。

  js中可能出现的内存泄漏的情况:

  • 原因:全局变量、DOM清空时还存在引用、ie使用闭包、定时器没有清除、子元素存在引起的内存泄露。
  • 结果:变慢、崩溃、延迟大。

  避免策略:

  • 减少不必要的全局变量,或者生命周期较长的对象,及时对无用的数据进行垃圾回收。
  • 注意程序逻辑,避免死循环
  • 避免创建过多的对象,不用了的东西要及时归还
  • 减少层级过多的引用。
原文地址:https://www.cnblogs.com/zx-fjs/p/12790422.html