昨天朋友给了一份百度今年的校招面试题目,做了一下,发现还是有不少的问题,js啊,我的致命硬伤,现在分享出来,供大家参考
1、试列举PC端和移动端浏览器里的HTML/CSS/JavaScript的5个不同之处:
这个问题在网上所了一下,没有特别好的答案,其实也就是浏览器内核,移动端主要是webkit核心(除非非常老的手机),可以大量使用html5和css3,一直没有做过移动端的东西,区别想不到到太多,还有什么大家补充吧。
2、用javascript实现:将页面里面所有className 包含test的A标签找出来,并且给他们添加黄色的背景
这个问题乍一看不是很难,仔细看了下还是有点小问题的,我自己写了个demo,但总觉得性能会有点差,希望大家有更好的方法贴出来,下面是源码
- window.onload = function getLable(){
- var oLable = document.getElementsByTagName("a");
- var len = oLable.length;
- for(var i = 0;i < len;i ++){
- if(/^test /.test(oLable.className) || / test /.test(oLable.className) || / test$/.test(oLable.className) || /^test$/.test(oLable.className)){
- oLable.style.backgroundColor = "yellow";
- }
- }
- };
3、请用HTML+css实现此图: (图片不清晰,我就不贴了,大体是一个列表,右上角有一个关闭按钮的页面)
4、请用javascript写一个Array数组的去重函数,数组为任意类型元素数组
这个题目也写了个小demo,供大家参考- function deteleSame(arr){
- var array = [];
- var flag = false;
- for(var i = 0,l = arr.length;i < l;i ++){
- for(var j = 0 , ll = array.length;j < ll;j ++){
- if(arr == array[j]){
- flag = true;
- continue;
- }
- }
- if(flag == false){
- array.push(arr);
- }
- }
- alert(array);
- }
用了两个for循环,貌似不是最好的方法,不过方法确实可行。
5、使用js写一个函数:当用鼠标拖拽着一个DIV元素在页面上滑动时,与这个DIV元素有重叠交际的DOM元素列表
这个题目暂时没有想到好的解决方法,大家研究研究吧
6、当你打开浏览器,从输入URL地址到浏览器成网页内容这段时间给用户的体验尤为重要,请你列举出你所知的能减少这段时间的技术方案。
这个题目应该是面试当中经常被问及的题目,也就是前端优化类的问题
|