前端面试之面试题详解

前端面试之面试题详解


为什么写这个呢,因为感觉这份面试题有些我还真不知道,并且有些东西也是知其然而不知其所以然,所以特地写这篇来记录一下这些问题。

面试题具体如下

  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中复杂的数据类型,本质上是由一组无序的名值对组成的。

2.

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

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

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

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

3.

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

4.

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

5.

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

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; /*IE6、IE7、IE8会显示红色*/
*background-color: #0066FF; /*IE6、IE7会变为蓝色*/
_background-color: #009933; /*IE6会变为绿色*/

8.

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

9.

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

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事件表示文档结构以外的包括图片在内的所有元素都加载完成。

总结

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

posted @ 2015-11-30 23:18  marvine  阅读(375)  评论(0编辑  收藏  举报