1、(js)给如下所有li元素绑定click事件,在鼠标点击的时候alert该li内容、及xy坐标等信息。且在鼠标离开外部ul元素范围时弹出alert提示。要求:注意浏览器兼容性,不要使用现成的框架库。
<ul id="ulitem"> <li id="li1">内容1</li> 。。。重复1000+个li对象... <li id="li9999">内容9999</li> </ul>
解:对于这个题目,考察内容为:事件委托。这么多的li,循环li绑定事件,不知道浏览器会有多卡。直接将事件绑定在ul上,事件冒泡上来就做处理。考虑到兼容性的话,标准浏览器和ie的区别以及dom 2级和1级的区别。事件绑定后,有event的兼容,event.target、event.srcElement;获取内容的话,有兼容性innerText和textContent的区别,关于mouseout兼容的问题,直接看代码。
function mouseover_x ( ae ){
var e = window.event || ae ;
var s = e.fromElement || e.relatedTarget ;
if( document.all ){
if( !(s == this || this.contains(s)) ){
alert("IE: 你 in 了 !");
}
}else{
var res= this.compareDocumentPosition(s) ;
if( !(s == this || res == 20 || res == 0 ) ){
alert("FF: 你 in 了 !");
}
}
}
function mouseout_x( ae ){
var e = window.event || ae;
var s = e.toElement || e.relatedTarget;
if(document.all){
if( !this.contains(s) ){
alert('IE: 你 out 了');
}
}else{
var res= this.compareDocumentPosition(s) ;
if( ! ( res == 20 || res == 0) ){
alert('FF: 你 out 了');
}
}
}
遇到这些题是不是感觉灰常难呢,呵呵!习惯了冲着目标在短时间内完成功能,完成架构的我,对底层js还是太欠缺了。
2、(.net)请描述什么是装箱?什么是拆箱?在进行装箱和拆箱的时候会出现什么问题?怎样避免?
解:我表示我看到这个很茫然,虽然我也搞了这么些年的.net。但是,我从来没有看过.net的书箱神马的,其实装箱和拆箱是.net中最为核心的东西。其实呢,装箱就是隐式的将一个值型转换为引用型对象。拆箱就是将一个引用型对象转换成任意值型。这个应该都知道。通过这些参考中的东西我们知道,装箱和拆箱会引起性能上的问题,主要原因是1:对于堆的操作效率比较低, 2:再堆上分配的内存要通过GC去收集(GC要检测到对象为Null的时候才收集),从而降低了效率。应该尽量避免装箱和拆箱的操作。
3、请列举你所知道的.net平台下可能会引起内存泄露问题的场景,怎么解决?
解:非托管资源(如文件操作、网络连接等)会造成内存泄露。必须显式的资源释放。
参考:
1、http://xuganggogo.iteye.com/blog/538476
2、http://www.cnblogs.com/xiaoshi/archive/2008/05/28/1208902.html
3、http://www.cnblogs.com/mqsuper/archive/2008/08/12/1265520.html