互联网公司招聘web前端笔试题目
一般现在涌现的技术都是opensource
提问时间
1百度web开发脚本是否有做类似yui库的打算
2百度web开发工程师打算招多少人
百度电话二面回忆 web开发部–web开发工程师
首先是自我介绍
然后谈谈做的web项目
然后开始问技术问题
前端开发的优化问题
答:
产品发布时,js的压缩,即函数名替换、整个文件压缩成一行
css开发的时候 注释写清楚,先有个base.css,然后根据不同页面需要再加css,发布的时候将css中的一个定义写成一行,目的是压缩文件大小
最终发布的时候甚至可以将css,js分别压缩成一个文件,甚至css、js通过技巧压缩到一个里边(亮点)
这样的目的是,减少用户访问web产品的http连接数
web前端产品的开发流程
答:首先根据产品的定位、用户群,确定配色,然后纸上设计整体布局,然后png或者psd出效果图,切出需要的小图片,然后手写代码div+css构造出页面,然后根据功能写脚本
参考126邮箱首页,将所有小图片放到一个图片中,通过css的background-position实现页面,还是为了优化,减少http连接数
规避javascript多人开发函数重名问题
答:首先是通过命名规范,比如根据不同的开发人员实现的功能,在函数名加前缀,虽然函数名看起来复杂,发布的时候还是可以替换,从而优化。
还有一种办法是,每个开发人员都把自己的函数封装到类中,然后调用的时候即使函数名相同,但是因为是要类.函数名来调用,所以也减少了重复的可能性。
javascript面向对象中继承实现
答:我是用prototype.js extend.js扩展
然后子类中parent.initialize()…
答的不好
正确答案:
// 1. 构造器
function animal() {};
function mammal() {};
function canine() {};
function dog() {};
// 2. 原型链表
mammal.prototype = new animal();
canine.prototype = new mammal();
dog.prototype = new canine();
prototype.js实现的基本原理
答:
将功能封装
比如ajax.request,还是有判断浏览器的代码;position这样的实现页面元素位置的计算
prototye太大,如果一个页面功能不需要这样的,自己实现,怎么做
答:首先页面、css、脚本分离之后,脚本中将整个模块功能写成一个类var do={}
其中初始化函数init:function(){},然后最后做do.init()
其中init会对页面上form中需要交互的元素绑定事件,比如$(’input1′).onclick=function(){}
ie、ff下面脚本的区别
答:
1.ie有outerhtml,ff没有
2.页面元素id,ie可以直接取,ff必须document.getelementbyid()
3.ajax里边ff是new xmlhttprequest,而ie是
try new activexobject(’msxml2.xmlhttp’) try new activexobject(’microsoft.xmlhttp’)
ff下面实现outerhtml
答:.parenet.firstchild .parent.innerhtml
这个没答好
正确答案:原理是,get:取到这个标签的tagname,然后属性循环构造成这个标签的属性
set:把字符串用insertbefore插入到这个元素前面,然后removechild这个元素
ie、ff下面css的解释区别
答:
1.png透明背景,ff下面没有问题,ie需要用滤镜通道
2.z-index在ie、ff下面的解释问题,
ie会认为第一个z-index=0
3.长字符串,word-wrap:break-all可以解决ie,但是ff需要overflow:hidden才行
冯舒娅补充:
1、有些标签在ff中不能用,比如button
2、滤镜
3、鼠标cursor:hand cursor:pointer
4、div的高度自适应
5、对box模型解析不一样
6、ul、ol的padding和margin