前端面试知识收集

块级元素和行内元素

行内元素:与其他行内元素并排

不能设置宽高,默认的宽度就是文字的宽度

除了p之外的所有文本级标签(span,a,b,i,u,em)

块级元素:霸占一行,不能与其他任何元素并列。

能接受宽高,如果不设置宽度,那么宽度将默认变为父级的100%

所有的容器级标签(div,h系列,lt,dt,dd),以及p标签

 

什么是闭包以及闭包的优缺点

闭包是定义在一个函数内部的函数。

优点:可以读取函数内部变量以及将变量的值始终保持在内存中不会被自动清除。

缺点:1.由于将函数变量都保存在内存中,内存消耗很大,会造成网页性能问题,并且在IE中可能导致内存泄露

2.闭包可以在父函数外改变父函数内部变量的值。

 

HTML文件里开头的DOCTYPE有什么作用

DOCTYPE是document type(文档类型)的简写,在web设计中用来声明文档类型。它是一条指令,告诉浏览器编写页面所用的标记的版本。

 

cookie和session的区别

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
   考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
   考虑到减轻服务器性能方面,应当使用cookie

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

 

GET和POST两种基本请求方法的区别

  1. GET把参数包含在URL中,POST通过request body传递参数。
  2. GET请求会被浏览器主动cache,而POST不会,除非手动设置。
  3. GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

 

在以下情况中,请使用 POST 请求:

无法使用缓存文件(更新服务器上的文件或数据库)

向服务器发送大量数据(POST 没有数据量限制)

发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠

 

除了GET和POST之外的请求方法:

OPTIONS:这个方法可使服务器传回该资源所支持的所有HTTP请求方法。用'*'来代替资源名称,向Web服务器发送OPTIONS请求,可以测试服务器功能是否正常运作。

HEAD:与GET方法一样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部分。它的好处在于,使用这个方法可以在不必传输全部内容的情况下,就可以获取其中“关于该资源的信息”(元信息或称元数据)。

PUT:向指定资源位置上传其最新内容。

DELETE:请求服务器删除Request-URI所标识的资源。

TRACE:回显服务器收到的请求,主要用于测试或诊断。

CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接(经由非加密的HTTP代理服务器)。

Javascript中可以利用toString()将数字变成字符串,可以用split()将字符串变成数组

常见的HTTP相应状态码

  • 200:请求被正常处理
  • 204:请求被受理但没有资源可以返回
  • 206:客户端只是请求资源的一部分,服务器只对请求的部分资源执行GET方法,相应报文中通过Content-Range指定范围的资源。
  • 301:永久性重定向
  • 302:临时重定向
  • 303:与302状态码有相似功能,只是它希望客户端在请求一个URI的时候,能通过GET方法重定向到另一个URI上
  • 304:发送附带条件的请求时,条件不满足时返回,与重定向无关
  • 307:临时重定向,与302类似,只是强制要求使用POST方法
  • 400:请求报文语法有误,服务器无法识别
  • 401:请求需要认证
  • 403:请求的对应资源禁止被访问
  • 404:服务器无法找到对应资源
  • 500:服务器内部错误
  • 503:服务器正忙
  • 状态码的类别有:
    1XX(信息性状态码)
    2XX(成功状态码)
    3XX(重定向状态码)
    4XX(认证错误状态码)
    5XX(服务器错误状态码)

 

Ajax与Flash

1.Ajax的优势:1.可搜索性 2.开放性 3.费用 4.易用性 5.易于开发。

2.Flash的优势:1.多媒体处理 2.兼容性 3.矢量图形 4.客户端资源调度

3.Ajax的劣势:1.它可能破坏浏览器的后退功能   2.使用动态页面更新使得用户难于将某个特定的状态保存到收藏夹中 ,不过这些都有相关方法解决。

4.Flash的劣势:1.二进制格式 2.格式私有 3.flash 文件经常会很大,用户第一次使用的时候需要忍耐较长的等待时间  4.性能问题

 

Ajax事件

ajax的事件是:

ajaxComplete(callback)

ajaxError(callback)

ajaxSend(callback)

ajaxStart(callback)

ajaxStop(callback)

ajaxSuccess(callback)

 

label属性for对应的是id

 

typeof null    //"object"

 

在js中,定义了两个同名函数后,后面的函数会覆盖前面定义的函数。

 

 

置换元素

置换元素是指:浏览器根据元素的标签和属性,来决定元素的具体显示内容。

例如:浏览器根据标签的src属性显示图片。根据标签的type属性决定显示输入框还是按钮。html中的