前端面试之面试题详解
前端面试之面试题详解
为什么写这个呢,因为感觉这份面试题有些我还真不知道,并且有些东西也是知其然而不知其所以然,所以特地写这篇来记录一下这些问题。
面试题具体如下
- javascript的typeof返回哪些类型?
- 举例3种javascript中的强制类型转换,2中隐式类型转换?
- split(),join()的区别?
- 数组方法pop(),push(),unshift(),shift()?
- 事件绑定和普通事件有什么区别?
- ie和dom事件流的区别?
- ie标准下有哪些兼容性写法?
- ajax请求中get和post有什么区别?
- call和apply的区别?
- ajax请求时,如何解释json数据?
- 事件委托是什么?
- 如何阻止事件冒泡和默认事件?
- javascript的本地对象,内置对象和宿主对象?
- 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事件表示文档结构以外的包括图片在内的所有元素都加载完成。
总结
这是记录的一些关于这些题目的记录,也有些偏颇。欢迎来喷!!!