前端基础面试题汇总

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.行内元素和块级元素有哪些?有什么区别?

块级:

      行内:a、br、i、img、input、strong

      区别:块级元素的W、H、margin和padding都可以控制

      行内元素的W、H,以及margin和padding的top和bottom不能控制

      2.介绍所知道的CSS hack技巧

      由于不同的浏览器对CSS的支持和解析结果不同,所以可以使用CSS hack来对不同的浏览器写不同的CSS样式,常见的有(_,*,!important)

      3.CSS定位方式有哪些?position的属性值之间的区别是什么

      static(静态)没有特别的设定,遵循基本的定位规定,不能通过z-index进行层次分级。

      relative(相对定位)对象不可层叠、不脱离文档流,参考自身静态位置通过

      top,bottom,left,right 定位,并且可以通过z-index进行层次分级。

      absolute(绝对定位)脱离文档流,通过top,bottom,left,right 定位。选取其最近一个最有定位设置的父级对象进行绝对定位,如果对象的父级没有设置定位属性,absolute元素将以body坐标原点进行定位,可以通过z-index进行层次分级。

      fixed(固定定位)这里所固定的参照对像是可视窗口而并非是body或是父级元素。可通过z-index进行层次分级。

      4.类的定义方法(prototype)(继承)

      var Obj3 = new Function();

      Obj3.prototype = {

      v1 : "",

      get_v1 : function() {

      return this.v1;

      },

      set_v1 : function(v) {

      this.v1 = v;

      }

      };

      5.DOM 操作

      1.向当前对象追加节点

      var para=document.createElement("p");

      var node=document.createTextNode("这是新段落。");

      para.appendChild(node);

      2.移除当前节点的子节点,并返回节点

      var childnode=document.getElementById("child");

      var removednode=document.getElementById("father").removeChild(childnode)

      3.复制并返回当前节点(复制节点本身,不复制子节点)

      var ul = document.getElementByIdx_xx_x("myList"); //获得ul

      var deepList = ul.cloneNode(true); //深复制

      var shallowList = ul.cloneNode(false); //浅复制

      6.在当前节点插入一个新节点

      var lovespan=document.getElementById("lovespan"); //获取id

      var newspan=document.createElement("span");

      var newspanref=document.body.insertBefore(newspan, lovespan);

      newspanref.innerHTML="鱼与";

      7.替换节点内容

      var dt = document.getElementById('test');//通过id获取该div

      dt.innerHTML = "abc";//把内容替换成abc

      8.什么是闭包,闭包的作用是什么?

      闭包:是指有权访问另外一个函数作用域中的变量的函数。

      作用:可以很大程度上减少全局作用域中的变量,净化全局作用域。在javascript中没有块级作用域,一般为了给某个函数声明一些只有该函数才能使用的局部变量时,我们就会用到闭包。

      9. 事件绑定的几种方法,事件冒泡

      1、直接在元素上绑定回调函数

      2、JS获取DOM元素对象后,对onclick属性赋值,绑定事件:

      document.getElementById('btn').onclick=clickBtn;

      3、JS获取DOM对象后,调用对象的addEventListener函数绑定事件:

      document.getElementById('btn').addEventListener('click',clickBtn);

      事件冒泡:在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器是window)。10. 异步ajax的优缺点

      优点:

      •相对于同步ajax:不会造成UI卡死,用户体验好。

      •相对于刷新页面,省流量

      缺点:

      •后退按钮无效;

      •多个请求同时触发时,由于回调时间不确定,会造成混乱,避免这种混乱需要复杂的判断机制。

      •搜索引擎不友好

      •数据不安全

      11. jQuery的优点

      •轻量级

      •兼容性好

      •强大的选择器

      •出色的DOM操作的封装

      •完善的文档

      •开