百度工程师面试题及答案解 小灰灰 2021-02-04 14:24 831阅读 0赞 **一、单选题(共25题,每题5分)** **1.该正则可以匹配下列哪个字符串? /^sjm/** A、absjm B、phpsjm C、sjmphp D、phpsimd **参考答案:C** 答案解析:该正则匹配以sjm开头的字符串 **2.新窗口打开网页,用到以下哪个值()。** A、\_self B、\_blank C、\_top D、\_parent **参考答案:B** 答案解析:在html中通过标签打开一个链接,通过 标签的 target 属性规定在何处打开链接文档。 如果在标签中写入target属性,则浏览器会根据target的属性值去打开与其命名或名称相符的 框架或者窗口. 在target中还存在四个保留的属性值如下, \#\#\# 属性值 | **值** | **描述** | | ----------- | ------------------------------------ | | _blank | 在新窗口中打开被链接文档。 | | _self | 默认。在相同的框架中打开被链接文档。 | | _parent | 在父框架集中打开被链接文档。 | | _top | 在整个窗口中打开被链接文档。 | | *framename* | 在指定的框架中打开被链接文档。 | 这些 target 的所有 4 个值都以下划线开始。任何其他用一个下划线作为开头的窗口或者目标都会被浏览器忽略,因此,不要将下划线作为文档中定义的任何框架 name 或 id 的第一个字符。 上面这段出自w3c。。 **3.如果一个HTML文档内含有阿拉伯文,则应该?** A、使用utf-8编码 B、将阿拉伯文转为图片并嵌入到文档内 C、使用GBK编码 D、使用iso-8859-2编码 **参考答案:A** 答案解析: UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。UTF-8用1到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。 GBK是汉字编码,是双字节码,可表示繁体字和简体字。 ISO8859-2 字符集,也称为 Latin-2。 **4.以下哪个选项不是块级元素()** A、div B、span C、p D、h1 **参考答案:B** 答案解析: 常见的内联元素:、\*\*、、\*、\*、\*\*、、、、、\` \`\*\*\*\*\*\* 常见的块级元素: 、、、、 、、、 *、> 、* 窗体顶端 窗体底端 常见的内联块级元素:!\[\]()、 **5.下面关于二叉树的说法正确的是?** A、满二叉树就是完全二叉树 B、满二叉树中有可能存在度数为1的节点 C、完全二叉树就是满二叉树 D、完全二叉树中某个节点可以没有左孩子,只有右孩子 参考答案:A 答案解析:满二叉树的任意节点,要么度为0,要么度为2.换个说法即要么为叶子结点,要么同时具有左右孩子。 完全二叉树:所有子树要么没有孩子,要么一定有左孩子。 满二叉树一定为完全二叉树,但完全二叉树不一定为满二叉树; **6.下面有关csrf的描述,说法错误的是?** A、CSRF则通过伪装来自受信任用户的请求来利用受信任的网站 B、xss是实现csrf的诸多途径中的一条 C、在客户端页面增加伪随机数可以阻挡csrf D、过滤用户输入的内容也可以阻挡csrf **参考答案:D** 答案解析: D; 1.XSS 全称“跨站脚本”,是注入攻击的一种。其特点是不对服务器端造成任何伤害,而是通过一些正常的站内交互途径,例如发布评论,提交含有 JavaScript 的内容文本。这时服务器端如果没有过滤或转义掉这些脚本,作为内容发布到了页面上,其他用户访问这个页面的时候就会运行这些脚本。 2.CSRF 的全称是“跨站请求伪造”,而 XSS 的全称是“跨站脚本”。看起来有点相似,它们都是属于跨站攻击——不攻击服务器端而攻击正常访问网站的用户,但前面说了,它们的攻击类型是不同维度上的分 类。CSRF 顾名思义,是伪造请求,冒充用户在站内的正常操作。我们知道,绝大多数网站是通过 cookie 等方式辨识用户身份(包括使用服务器端 Session 的网站,因为 Session ID 也是大多保存在 cookie 里面的),再予以授权的。所以要伪造用户的正常操作,最好的方法是通过 XSS 或链接欺骗等途径,让用户在本机(即拥有身份 cookie 的浏览器端)发起用户所不知道的请求。 3.XSS 是实现 CSRF 的诸多途径中的一条,但绝对不是唯一的一条。一般习惯上把通过 XSS 来实现的 CSRF 称为 XSRF。 **7.下面span标签中Hello World字体的颜色是 ?** <style type="text/css"> span { color: green; } .red { color: red; } #blue { color: blue; }</style><span class="red" id="blue" style="color:black;"> Hello World</span> HTML A、green B、red C、blue D、black **8.数字签名 elgamal算法的原理是?** A、扩展欧几里得定理 B、中国剩余定理 C、欧拉定理 D、拉斐尔定律 **9.如果想在一个指定的元素后添加内容,下面哪个是实现该功能的?** A、append(content) B、appendTo(content) C、insertAfter(content) D、after(content) **10.在jquery中想要实现通过远程http get请求载入信息功能的是下面的哪一下事件?** A、$.ajax() B、load(url) C、$.get(url) D、$. getScript(url) **11.因特网用户大多数情况下都是通过浏览器访问网页的,浏览器采用超文本传输协议与Web服务器进行通信。超文本传输协议的英文缩写是** A、 HTML B、 URL C、 HTTP D、 FTP **12.JavaScript中通过navigator.userAgent获取到的是:** A、用户浏览器信息 B、用户代理信息 C、用户地理位置 D、用户IP地址 **参考答案:A** **13.想匹配 字符串 "abc 123" 中的数字,哪个正则表达式是正确的?** A、/\\d\*/ B、/\[0-9\]\*/ C、/\[^a-z\]\*/ D、/\\d+/ **参考答案:D** 答案解析:这个是匹配数字,\\d+ 表示至少配置一个数字,A和B都是没有至少这个含义,C这个不是数字 **14.HTML语言中的换行标记是 ( )** A、html B、br C、title D、p **参考答案:B** **15.以下对HTML中使用CSS说法不正确的是:( )** A、CSS必须在HTML中使用 B、HTML中必须使用CSS C、在HTML中可以使用CSS,也可以不使用 D、在HTML元素中通过属性完成的设置,部分也可以通过CSS来设置 **参考答案:B** **16.以下对HTML中使用CSS说法不正确的是:( )** A、CSS必须在HTML中使用 B、HTML中必须使用CSS C、在HTML中可以使用CSS,也可以不使用 D、在HTML元素中通过属性完成的设置,部分也可以通过CSS来设置 **参考答案:B** **17.HTML5应用中如果需要在浏览器端存储一组50k大小的数据,而且不受浏览器...** HTML5应用中如果需要在浏览器端存储一组50k大小的数据,而且不受浏览器关闭影响,最好使用以下那种技术: A、localStorage B、sessionStorage C、cookie D、url **参考答案:A** **18.虽然不同的操作系统可能装有不同的浏览器。但是这些浏览器都符合( )协议。** A、SNMP B、 HTTP C、HTML D、SMTP **19.以下PCRE正则表达式在php中能与哪个选项匹配? '/\\\*+\\\\\\+/'** A、aaa\\+ B、\*\*\*\\+ C、\*\*\*\*\\ D、\*\*\\+ **参考答案:C** 答案解析:在php中单引号解析\\,所以这个表达式解析后为'/\\\*+\\\\+/',所以是匹配至少一个\*和至少一个\\ **20.与document.getElementById("myHeader")具...** 与document.getElementById("myHeader")具有同样效果的jQuery选择器是() A、$("myHeader") B、$(".myHeader") C、$("\#myHeader") D、都不正确 **21.在实际使用中,下面哪一个可以很方便的获得页面中定义的HTML对象?()** A、document.GetElementsByTagName B、document.getElementByTagNames C、document.getElementsById D、document.getElementById **参考答案:D** 答案解析:A错在首字母大写,应为get……,后面是对的; B错在s,正确应为getElementsByTagName; C也错在s,正确应为getElementById; 记住首字母小写,Id无s,TageName有s就好了。 **22.表示有序列表的是** A、ul B、dl C、li D、ol **23.文本文件和二进制文件的存取,错误的是?** A、用记事本打开二进制文件时, 出现乱码是很必然了 B、二进制文件还是文本文件, 在存储时都是一连串的0和1 C、打开方式是一样的 D、二进制文件最小单位则是位 **24.下面哪一种属于“creational”的设计模式?** A、Façade B、Singleton C、Bridge D、Composite E、上面都不是 **参考答案:B** 答案解析:总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、 **25.哪一个不是浏览器默认的天生inline-block标签(拥有内在尺寸,可设置高宽,不会自动换行)?** A、`<button>` B、`<input>` C、`<label>` D、`<img>` **参考答案:C** 答案解析: 要理解display:inline、block、inline-block的区别,需要先了解HTML中的块级(block)元素和行级(inline)元素的特点,行内元素也叫内联元素。 块级元素 总是另起一行开始; 高度,行高以及顶、底边距都可以控制; 宽度缺省是它所在容器的100%,除非设定一个宽度。 块级元素通常作为其他元素的容器,可以容纳内联元素和其他块元素。block element的HTML标签如下: address-地址 blockquote-块引用 center-居中对齐块 div-常用块级元素 dl-定义列表 form-交互表单 fieldset-form控制组 hr-水平分隔线 ol-排序表单 ul-非排序列表 dir-目录列表 p-段落 pre-格式化文本 isindex-input prompt menu-菜单列表 table-表格 h1...h6-标题 noframes-frames可选内容(对于不支持frame的浏览器显示此区块内容) noscript-可选脚本内容(对于不支持script的浏览器显示此内容) 行级元素 和其他元素都在一行上; 高度,行高以及顶、底边距不可改变; 高度就是它所容纳的文字或图片的宽度,不可改变。 一般都是基于语义级(semantic)的基本元素,只能容纳文本或者其他内联元素,内联元素的HTML标签分类如下: a-锚点 abbr-缩写 acronym-首字 font-字体设定(不推荐) b-粗体(不推荐) big-bidi override em-强调 br-换行 small-小字体文本 strong-粗体强调 i-斜体 img-图片 input-输入框 label-表格标签 select-项目选择 textarea-多行文本输入框 u-下划线 var-定义变量 cite-引用 code-计算机代码(在引用源码的时候需要) dfn-定义字段 kbd-定义键盘文本 q-短引用 s-中划线(不推荐) strike-中划线 sub-下标 sup-上标 tt-电传文本 HTML中有些元素是可变元素,可根据上下文语境决定该元素为块元素或者内联元素。 applet-java applet button-按钮 del-删除文本 iframe-inline frame ins-插入的文本 map-图片区块(map) object-object对象 script-客户端脚本 display:block就是将元素显示为块级元素,display:inline则将元素显示为行内元素。 display:inline-block将元素显示为行内元素,但是元素的内容作为块元素处理。旁边的内联元素和该对象显示在同一行,并且允许空格,但是该元素具有块元素的特性,可以设置其高度,宽度等属性。在同一行内有不同高度内容的元素时,通常要设置对齐方式如vertical-align: top;来使元素顶部对齐。 兼容性 CSS中使用display:inline-block;来样式化,在Firefox, Safari, Google Chrome 和 IE 8及以上是有效的。但是在早期的IE,比如IE 7,对行内元素设置inline-block无法实现inline-block的效果。只是触发了块元素的layout,而行内元素本身就是行布局,所以触发后,依然是行布局。 对IE8以下的版本,可以采用以下两种方法来实现inline-block的效果: 先用display:inline-block属性触发块元素,然后再定义display:inline,让块元素呈递为内联对象(原理:这是IE的一个经典bug,如果先定义了display:inline-block,然后再设置display回inline或block,layout不会消失),代码如下: 1 div \{display:inline-block;\}2 div \{display:inline;\} 将块元素设置为内联对象(display:inline),然后通过zoom:1触发块元素的layout,代码如下: div \{display:inline; zoom:1;\} **二、多选题(共5题,每题5分)** **1.GET方法与POST方法的区别** A、区别一: get重点在从服务器上获取资源,post重点在向服务器发送数据; B、区别二: get传输数据是通过URL请求,以field(字段)= value的形式,置于URL后,并用"?"连接,多个请求数据间用"&"连接,如http://127.0.0.1/Test/login.action?name=admin&password=admin,这个过程用户是可见的; post传输数据通过Http的post机制,将字段与对应值封存在请求实体中发送给服务器,这个过程对用户是不可见的; C、区别三: Get传输的数据量小,因为受URL长度限制,但效率较高; Post可以传输大量数据,所以上传文件时只能用Post方式; D、区别四: get是不安全的,因为URL是可见的,可能会泄露私密信息,如密码等; post较get安全性较高; **参考答案:ABCD** 答案解析: abcd都对,还有 区别五: get方式只能支持ASCII字符,向服务器传的中文字符可能会乱码。 post支持标准字符集,可以正确传递中文字符。 **2.关于focus/blur与focusin/focusout的描述,正确的有?** A、focus/blur冒泡,focusin/focusout不冒泡 B、focus/blur兼容性好,focusin/focusout在除FireFox外的浏览器下都保持良好兼容性,如需使用事件托管,可考虑在FireFox下使用事件捕获elem.addEventListener('focus', handler, true) C、可获得焦点的元素: window 、链接被点击或键盘操作、表单空间被点击或键盘操作 D、设置tabindex属性的元素被点击或键盘操作并不会获得焦点 **3.下列JS框架中,系列不包含开箱即用的UI控件和小部件的是()** A、MooTools B、ExtJS C、jQuery D、YUI **4.input元素的 type 属性的取值可以是()** A、image B、checkbox C、select D、button **参考答案:A,B,D** 答案解析:input的type 属性取值总结: **5.以下标签中,默认是块级元素的标签有:** A、span B、div C、p D、img **参考答案:B,** 答案解析: img是内联元素
还没有评论,来说两句吧...