前端面试之面试题详解

前端面试之面试题详解


为何写这个呢,由于感受这份面试题有些我还真不知道,而且有些东西也是知其然而不知其因此然,因此特意写这篇来记录一下这些问题。javascript

面试题具体以下

  1. javascript的typeof返回哪些类型?
  2. 举例3种javascript中的强制类型转换,2中隐式类型转换?
  3. split(),join()的区别?
  4. 数组方法pop(),push(),unshift(),shift()?
  5. 事件绑定和普通事件有什么区别?
  6. ie和dom事件流的区别?
  7. ie标准下有哪些兼容性写法?
  8. ajax请求中get和post有什么区别?
  9. call和apply的区别?
  10. ajax请求时,如何解释json数据?
  11. 事件委托是什么?
  12. 如何阻止事件冒泡和默认事件?
  13. javascript的本地对象,内置对象和宿主对象?
  14. document load和document ready的区别?

题目答案

1.

javascript的typeof返回的类型,其实只要知道javascript中有哪些类型,这道题就不难解答。null,undefined,object,number,string,boolean。其中object是一种javascript中复杂的数据类型,本质上是由一组无序的名值对组成的。css

2.

javascript是一种弱类型语言,其中提供了一些函数的类型转换诸如parseInt,parseFloat,toString,Number等;隐式的转换有以下状况:前端

  • 第一种状况
var a = 2;a = a + '4';
  • 第二种状况
var obj = {name:'jack};
if(obj){//do something;}

这里obj被隐式转换成了boolean型java

  • 第三种状况
var person = {'name':'jack',"age":20,school:'PKU'};
for(var a in person){
 alert(a + ": " + typeof a);
}

3.

其实这道题是很简单的,都很经常使用。一个是将字符串分割为数组,一个是将数组链接成字符串面试

4.

理解堆栈和队列这道题就不难ajax

5.

绑定事件是绑定在dom元素上的事件,而普通事件是非dom元素的事件。我理解是这样的。json

6.

ie和dom有如下集中区别数组

  • 获取事件的目标是不同的
    IE
    var oTarget=oEvent.srcElement; //Masintosh的IE同时支持srcElement和target属性
    DOM
    DOM兼容的游览器上目标包含在target属性中
    var oTarget=oEvent.target;
  • 获取字符代码
    IE
    var iCharCode = event.keyCode
    DOM
    在DOM兼容的游览器中,按键的代码和字符会有一个分离,要获取字符代码,使用charCode属性
    var iCharCode =event.charCode
  • 阻止某个事件的默认行为
    IE
    要在IE中阻止某个事件的默认行为,必须将returnValue属性设置为false
    oEvent.returnValue=false;
    DOM
    要调用preventDefault()方法
    oEvent.preventDefault();
    好比在右击页面的时候能够阻止事件的默认行为,只要阻止contextmenu事件的默认行为就能够了。
  • 中止事件的复制(冒泡)
    IE
    在IE中,要阻止事件的进一步冒泡,必须设置cancelBubble属性为true
    oEvent.cancelBubble=true;
    DOM
    在mozilla中,只须要调用stopPropagation()方法便可
    oEvent.stopPropagation()

7.

ie下的一些hacker写法浏览器

background-color: #CC00FF; /*全部浏览器都会显示为紫色*/
background-color: #FF0000\9; /*IE六、IE七、IE8会显示红色*/
*background-color: #0066FF; /*IE六、IE7会变为蓝色*/
_background-color: #009933; /*IE6会变为绿色*/

8.

  • 使用Get请求时,参数在URL中显示,而使用Post方式,则不会显示出来
  • 使用Get请求发送数据量小,Post请求发送数据量大

9.

call和apply接受的参数不一样,call接受的是一个个的参数,而apply接受的一个数字型的参数app

10.

其中设置 dataType:"json",使得返回来的数据格式为json。若是不添加该条属性,则返回来的为字符串。字符串对象能够经过eval("("+data+")")方法转成json对象,但该方法不推荐使用,对于取数据的操做同上。区分data为JSON对象仍是字符串,能够经过alert语句进行打印,若是是Object object就是JSON对象,若是将内容显示出来则为字符串。

11.

通俗的讲,事件就是onclick,onmouseover,onmouseout,等就是事件,委托呢,就是让别人来作,这个事件原本是加在某些元素上的,然而你却加到别人身上来作,完成这个事件。

12.

6中有细讲这两个

13.

javascript的本地对象有如下一些:
Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError
内置对象,即 Global 和 Math
全部的BOM和DOM对象都是宿主对象

14.

document ready事件表示文档结构已经加载完成,表示能够对dom进行操做。document load事件表示文档结构之外的包括图片在内的全部元素都加载完成。

总结

这是记录的一些关于这些题目的记录,也有些偏颇。欢迎来喷!!!

相关文章
相关标签/搜索