记一次完美世界笔试题

444 阅读5分钟

一. 选择题

1. [2分] 下列哪个不是常见的浏览器内核()

IE        Tridentfirefox        GeckoSafari        webkitchromeChromium/BlinkOpera        blink        

2. [2分] 浏览器端以下哪个不是用来本地存储数据的技术(错误答案:token)

cookie,localStorage,sessionStorage

3. [2分] 下列哪个不是常见的 HTTP 请求方法()

GET、POST(新增)、PUT(整体更新)、PATCH(局部更新)、DELETE

4. [2分] 以下哪种操作对网页的 SEO (搜索引擎优化) 是没有帮助的()

减少HTTP请求、服务器端渲染、绝对不能用@import导入css或者js文件、将CSS放在页面顶端,JS文件放在页面底端、减少DOM数量和层级数量

5. [2分] 以下不是box-sizing 的属性值是()

content-boxborder-boxinherit

6. [2分] 最终渲染的内容是什么颜色的() java <p class="p1 p2" id='p' style="color:#222">我是一段文字文字</p> <style> p { color:#444;} .p2 { color:#666 !important;} .p3 { color:#888; } </style>

内联样式优先级最高

7. [2分] 以下哪个标签不是块级元素()

8. [2分] 以下哪个不属于 display 的属性值()

inlineblockinline-blocknonetable

9. [2分] 以下哪个不属于行内元素和块级元素的区别()

10. [2分] 下列哪个不是 js 的基本数据类型()

11. [2分] 以下哪种方式肯定不能用来判断变量 arg 是否是一个数组()

instanceofconstructorObject.prototype.toString.call()Array.isArray()(最好)

12. [2分] 字符串 'perfectworld' 中所有的 e 变成大写 E( )

toUpperCase

13. [2分] let a = { c:1 }; let b = a, a = 2, b.c = 3; a.c = ?下面哪个是正确结果()

14. [2分] 以下哪个不是 ES6 标准及以后新增的特性() 错误答案:JSON

symbollet和const解构赋值 Map和Set箭头函数模板字符串扩展运算符
IteratorPromise     

15. [2分] 以下哪个不是 JS 的内置对象?()

StringDateMathArrayRegExp

16. [2分] 关于 JS 运行机制,下列哪些说法是错误的?()

有几个关键词:JavaScript 执行机制,同步任务、异步任务、微任务、宏任务、事件轮询(Event Loop)

主线程任务——>微任务——>宏任务——>宏任务里的微任务——>宏任务里的微任务中的宏任务——>任务全部完成

17. [2分] 以下哪个不是数组的方法?()

18. [2分] 以下哪个不是常用的 DOM 选择器方法()

document.getElementById/ClassName、TagName("")document.querySelector(".cont")

19. [2分] 下列哪个不是网页开发常用的调试手段?()

20. [2分] 选择执行顺序 A.componentDidMount B.componentDidUpdate C.componentWillUnmount D.constructor(react的内容,不会)

21. [3分] 以下关于const的描述,正确的是()

22. [3分] 关于csrf (cross-site-request-forgery),防御正确的是()

CSRF是跨站点请求伪造,攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作

防御:验证 HTTP Referer 字段在请求地址中添加 token 并验证
 在 HTTP 头中自定义属性并验证Chrome 浏览器端启用 SameSite cookie

23. [3分] http传输大文件的方法正确的是()

数据压缩分块传输范围请求多端数据

1、压缩 HTML 等文本文件是传输大文件最基本的方法;

2、分块传输可以流式收发数据,节约内存和带宽,使用响应头字段“Transfer-Encoding: chunked”来表示,分块的格式是 16 进制长度头 + 数据块;

3、范围请求可以只获取部分数据,即“分块请求”,实现视频拖拽或者断点续传,使用请求头字段“Range”和响应头字段“Content-Range”,响应状态码必须是 206;

4、也可以一次请求多个范围,这时候响应报文的数据类型是“multipart/byteranges”,body 里的多个部分会用 boundary 字符串分隔。

24. [3分] 下面有关浏览器中使用js跨域获取数据的描述,说法正确的是()

JSONPdocument.domainwindow.postMessagewindow.name
使用跨域资源共享(CORS)来跨域使用location.hash使用Web sockets来跨域flash URLLoader

25. [3分] 关于存储,以下说法正确的是()

26. [3分] 关于webpack,说法正确的是()

27. [3分] 关于position定位,下列说法正确的是()

  • position:relative 相对定位——不会脱离文档流(其在文本流中的位置依然存在)

image.png

  • position:fixed 相对浏览器定位——它脱离了文档流

image.png

  • position:absolute 绝对定位——相对于 static 定位以外的第一个父元素进行定位(其在正常流中的位置不再存在)

28. [3分] 以下关于ES6的异步方案中****Promise, async 函数 , generator 函数说法正确的是()

重要!!!

(参考juejin.cn/post/705823…

juejin.cn/post/706215…

29. [3分] flex:auto; 是flex以下哪些属性的简写()

flex是flex-grow,flex-shrink,flex-basis三个属性值的缩写

30. [3分] 关于数组原型方法中****indexOf includes说法正确的是()

看函数的返回值:indexOf返回的是数值型的而includes返回的是布尔型的

都可以支持第二参数,而且的第二个参数都支持负数形式

数组中的indexOf不能判断数组中是否有NaN而includes可以

参考:blog.csdn.net/wu_xianqian…

二. 问答题

1. [15分] (15分)以下html结构配合js代码,当js执行后,产生到log输出应该是什么

var outer = document.querySelector('#outer'); var inner = document.querySelector('#inner'); new MutationObserver(function () { console.log('mutate'); }).observe(outer, { attributes: true, }); function onClick() { console.log('click'); setTimeout(function () { console.log('timeout'); }, 0); Promise.resolve().then(function () { console.log('promise'); }); outer.setAttribute('data-random', Math.random()); } inner.addEventListener('click', onClick); outer.addEventListener('click', onClick); inner.click()

image.png  

2. [15分] (15分)写一个方法,完成:求出给出字符串中出现最多的一个字符