BAT及各大互联网公司前端笔试面试题:JavaScript篇
很多题是我自己面试BAT亲身经历碰到的。整理分享出来希望更多的前端er共同进步吧,不仅适用于求职者,对于巩固复习前端基础更是大有裨益。
而更多的题目是我一路以来收集的,也有往年的,答案不确保一定正确,如有错误或有更好的解法,还请斧正。
前面几题是会很基础,越下越有深度。
初级Javascript:
1
f1JavaScript是一门什么样的语言,它有哪些特点没有标准答案。2JavaScript的数据类型都有什么基本数据类型:Stri
gboolea
NumberU
defi
edNull引用数据类型:ObjectArrayDateRegExpFu
ctio
那么问题来了,如何判断某变量是否为数组数据类型方法一判断其是否具有数组性质,如slice方法。可自己给该变量定义slice方法,故有时会失效
2
f方法二obji
sta
ceofArray在某些IE版本中不正确
方法三方法一二皆有漏洞,在ECMAScript5中定义了新方法ArrayisArray保证其兼容性,最好的方法如下:
iftypeofArrayisArrayu
defi
ed
ArrayisArrayfu
ctio
arg
retur
ObjectprototypetoStri
gcallargobjectArray
3
f3已知ID的I
put输入框,希望获取这个输入框的输入值,怎么做不使用第三方框架docume
tgetEleme
tByIdIDvalue4希望获取到页面中所有的checkbox怎么做不使用第三方框架vardomListdocume
tgetEleme
tsByTagNamei
putvarcheckBoxList
4
fvarle
domListle
gth缓存到局部变量whilele
使用while的效率会比for循环更高ifdomListle
typecheckboxcheckBoxListpushdomListle
5设置一个已知ID的DIV的html内容为xxxx,字体颜色设置为黑色不使用第三方框架
5
fvardomdocume
tgetEleme
tByIdIDdomi
erHTMLxxxxdomstylecolor0006当一个DOM节点被点击时候,我们希望能够执行一个函数,应该怎么做直接在DOM里绑定事件:在JS里通过o
click绑定:xxxo
clicktest通过事件添加进行绑定:addEve
tListe
erxxxclicktest
6
f那么问题来了,Javascript的事件流模型都有什么
事件冒泡:事件开始由最具体的元素接受,然后逐级向上传播
事件捕捉:事件由最不具体的节点先接收,然后逐级向下,一直到最具体的
DOM事件流:三个阶段:事件捕捉,目标阶段,事件冒泡
7什么是Ajax和JSON,它们的优缺点。
Ajax是异步JavaScript和XML,用于在Web页面中实现异步数据交互。
优点:
7
f可以使得页面不重载全部内容的情况下加载局部内容,降低数据传输量
避免用户不断刷新或者跳转页面,提高用户体验缺点:对搜索引擎不友好要实现ajax下的前后退功能成本较大可能造成请求数的增加跨域r