《2022年腾讯web前端开发工程师笔试题及答案 .pdf》由会员分享,可在线阅读,更多相关《2022年腾讯web前端开发工程师笔试题及答案 .pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、腾讯 web前端开发工程师笔试题及答案1、 如何实现事件委托?首先要知道什么是事件委托。考虑一个列表,在li 的数量非常少的时候,为每一个li 添加事件侦听当然不会存在太多性能方面的问题,但是当列表非常的长,长到上百上千甚至上万的时候(当然只是一个解释,实际工作中很少遇到这么多li 的情况),为每个li 添加事件侦听就会对页面性能产生很大的影响。就像下面这段代码: js性能优化 精通 css 精通 js 精通 html . 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共
2、6 页 - - - - - - - - - (function() var a=document.getElementById(list); var b=a.getElementsByTagName(li); for(var i=0;ib.length;i+) bi.addEventListener(click,function(e) var c = e.target; alert(c.innerHTML); ,false); )(); 首先,我们来想下,产生性能问题的根本原因是什么呢?li 元素(目标对象)所要进行的事件处理了。怎么可以解决这种囧况呢?答案就是采用事件委托,将在 li 对象上
3、面要处理的事件委托给父元素或者祖先元素,即为父元素绑定事件侦听,看看下面的改进代码: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - js性能优化 精通 css 精通 js 精通 html . (function() var a=document.getElementById(list); a.addEventListener(click,function(e) var b = e.target; alert(b.innerHT
4、ML); ,false); )(); 虽然现在很多框架都已经实现了事件委托,但是作为一个开发人员,用框架的同时我们也应该知道他实现的原理是如何的,知其然,更要知其所以然名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - 2、 将 10 进制的数302 转为二进制。十进制转二进制的原理是:用 2 辗转相除至结果为1 将余数和最后的1 从下向上倒序写就是结果例如 302 302/2 = 151 余 0 151/2 = 75 余 1 75
5、/2 = 37 余 1 37/2 = 18 余 1 18/2 = 9 余 0 9/2 = 4 余 1 4/2 = 2 余 0 2/2 = 1 余 0 故二进制为100101110 所以程序可以写成这样:var a=302; var str=; while(a1) str = a%2 + str; a = parseInt(a/2); str = a+str; 3、 js 中运算符的优先级(此非原题,为原理题) 运算符描述. () 字段访问、数组下标、函数调用以及表达式分组+ - - ! delete new typeof void 一元运算符、返回数据类型、对象创建、未定义值* / % 乘法、
6、除法、取模+ - + 加法、减法、字符串连接 移位 = instanceof 小于、小于等于、大于、大于等于、instanceof = != = != 等于、不等于、严格相等、非严格相等& 按位与名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - - - 按位异或| 按位或& 逻辑与| 逻辑或?: 条件= oP= 赋值、运算赋值, 多重求值4、 typeof(null)=_ 答案为 object 5、 JS 中给全部都是数字元素的数组排序的
7、原生方法是_sort_,其中使用的是_冒泡_排序方法。例如: array.sort(function(a,b)return a-b;) 详细说明访问网站:http:/ NaN * 6=_ NaN_ 7、 JS 中调用某个函数之前,如何取得该函数最多可以传递多少个参数?该函数被调用时,如果知道传了多少个参数过来?假设函数名为fun,那个 fun.length 就是它最多能接受的参数个数;在 fun 函数里面, arguments 就是用数组装着调用时传过来的所有参数,因此 arguments.length就是已经传递过来的参数个数;如:function needTwoPara(p1,p2) va
8、r a=arguments; var result=我是个需要 +needTwoPara.length+个参数的函数 n +您输入的参数的个数为:+a.length+n for(var i=0, len = a.length; i len; i+) result=result+第 +(i+1)+ 个参数为 :+ai+n result+=以上是用arguments 来获得参数 n; result+=下面用变量来获得参数:n; result+=p1:+p1+n; result+=p2:+p2+n; alert(result); alert(needTwoPara.length); needTwoP
9、ara(ooooo); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - - - - 运行结果为:2 我是个需要2 个参数的函数您输入的参数的个数为:1 第 1 个参数为 :ooooo 以上是用arguments 来获得参数下面用变量来获得参数: p1:ooooo p2:undefined 8、 软件 HttpWatch 的作用?可以参考: http:/ JS 如何得到HTTP 的请求头信息和返回的头信息?Javascript中跟 respo
10、nse header有关的就两个方法:getResponseHeader从响应信息中获取指定的http头 语法strValue = oXMLHttpRequest.getResponseHeader(bstrHeader); getAllResponseHeaders获取响应的所有http头 语法strValue = oXMLHttpRequest.getAllResponseHeaders(); 需要注意的是,通常, 在 IE 下不能完整的获取header报头数据, 只能取到如下header数据:X-Powered-By: X-UA-Compatible: Keep-Alive: Transfer-Encoding: Content-Type: 比如你要获取时间戳,在IE 下必须做些特殊处理,需要在后端设置一下,关闭缓存:1.header( Cache-Control: no-store); / 关闭缓存名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -