一. 选择题
1. [2分] 下列哪个不是常见的浏览器内核()
| IE Trident | firefox Gecko | Safari webkit | chromeChromium/Blink | Opera 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-box | border-box | inherit |
|---|
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 的属性值()
| inline | block | inline-block | none | table |
|---|
9. [2分] 以下哪个不属于行内元素和块级元素的区别()
10. [2分] 下列哪个不是 js 的基本数据类型()
11. [2分] 以下哪种方式肯定不能用来判断变量 arg 是否是一个数组()
| instanceof | constructor | Object.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
| symbol | let和const | 解构赋值 | Map和Set | 箭头函数 | 模板字符串 | 扩展运算符 |
|---|---|---|---|---|---|---|
| Iterator | Promise |
15. [2分] 以下哪个不是 JS 的内置对象?()
| String | Date | Math | Array | RegExp |
|---|
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跨域获取数据的描述,说法正确的是()
| JSONP | document.domain | window.postMessage | window.name |
|---|---|---|---|
| 使用跨域资源共享(CORS)来跨域 | 使用location.hash | 使用Web sockets来跨域 | flash URLLoader |
25. [3分] 关于存储,以下说法正确的是()
26. [3分] 关于webpack,说法正确的是()
27. [3分] 关于position定位,下列说法正确的是()
- position:relative 相对定位——不会脱离文档流(其在文本流中的位置依然存在)
- position:fixed 相对浏览器定位——它脱离了文档流
- position:absolute 绝对定位——相对于 static 定位以外的第一个父元素进行定位(其在正常流中的位置不再存在)
28. [3分] 以下关于ES6的异步方案中****Promise, async 函数 , generator 函数说法正确的是()
重要!!!
29. [3分] flex:auto; 是flex以下哪些属性的简写()
flex是flex-grow,flex-shrink,flex-basis三个属性值的缩写
30. [3分] 关于数组原型方法中****indexOf 和 includes说法正确的是()
看函数的返回值:indexOf返回的是数值型的而includes返回的是布尔型的
都可以支持第二参数,而且的第二个参数都支持负数形式
数组中的indexOf不能判断数组中是否有NaN而includes可以
二. 问答题
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()
2. [15分] (15分)写一个方法,完成:求出给出字符串中出现最多的一个字符