2022.7.22中和农信笔试总结
一,填空题
- 改变元素的内边距外边距分别用___和___。
- javascript判断变量类型的方法___,___,___。
- 跨域请求资源的几种方式___,____,___。
- 你所了解到的web攻击技术 ___,___,___。
二,不定项选择题
1. 在javascript里,下列选项不属于数组方法的是()
A.reverse() B.length() C.concat() D.sort()
2.下面那些数组方法会改变原数组()
A.push() B.map() C.concat() D.splice()
3.关于promise说法正确的是()
A.promise.race在给定的promise中,某个fulfiled后才返回结果
B.对于一个后台获取数据已经产生结果的promise:p1,再次调用p1.then,不会去重新发送请求获取资源
C.Promise.all在所有给定的promise都fulfiled后才返回结果
D.Promise.then的回调函数中,可以返回一个新的promise
4.在ES6规范中,以下哪些类型属于基本数据类型()
A.String B.Boolean C.Null D.Function
5.元素的alt和title有什么异同,下列说法正确的是()
A.以上说法都不正确
B.alt和title同时设置的时候,alt作为图片的替代文字出现,title是图片的解释文字
C.alt和title同时设置的时候,title作为图片的替代文字出现,alt是图片的解释文字
D.不同的浏览器,表现不一样
三,简答题
- Html5有哪些新特性,移除了哪些元素?
- Cookies,sessionStorage,localStorage区别?
- 列举所了解的前端框架并简述
- 如何居中div,如何居中一个浮动元素?
- Es5和es6的区别,说一下你知道的es6
- 浏览器输入URL发生了什么?
答案:
填空题
1.padding margin
2.instanceof typeof object.prototype.toString.call
3.jsonp动态创建script标签 cors跨域 proxy代理
4.xxs攻击(跨站脚本攻击), CSRF攻击(跨站域请求伪造), SQL注入
选择题
1.B 2.AD 3.BD 4.ABC 5.B
简答题
1.Html5有哪些新特性,移除了哪些元素?
主要是关于图像,位置,存储,多任务等功能的增加
- 绘画 canvas
- 用于媒介回放的 video 和 audio 元素
- 本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失
- sessionStorage 的数据在浏览器关闭后自动删除
- 语意化更好的内容元素,比如article、footer、header、nav、section
- 表单控件,calendar、date、time、email、url、search
- 新的技术webworker, websocket, Geolocation
移除元素 :
- 纯表现的元素:basefont,big,center,font, s,strike,tt,u
- 对可用性产生负面影响的元素:frame,frameset,noframes
- 产生混淆:acronym,applet,dir
2.Cookies,sessionStorage,localStorage区别?
1、cookie
(1)本身用于客户端和服务端通信
(2)但是它有本地存储的功能,于是就被“借用”
(3)document.cookie = …获取和修改即可
(4)cookie用于存储的缺点
①存储量太小,只有4kb
②所有http请求都带着,会影响获取资源的效率
③api简单,需要封装才能用document.cookie
2、localStorage,sesseionStorage
(1)html5专门为存储而设计,最大容量5M
(2)api简单易用
(3)lcoalStorage.setItem(key, value);localStorage.getItem(key);
(4)ios safari隐藏模式下:localStorage.getItem会报错,建议统一使用try-catch封装
3、sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。而localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。
3.列举所了解的前端框架并简述
vue是一个用于创建用户界面的开源JavaScript框架,也是一个创建单页应用的Web应用框架;Vue所关注的核心是MVC模式中的视图层,同时,它也能方便地获取数据更新,并通过组件内部特定的方法实现视图与模型的交互
优点:
轻量级,速度快,简单易学,低耦合,独立开发,文档齐全
4.如何居中div,如何居中一个浮动元素?
第一种方法:
①,居中一个div:
给div设置一个宽度,margin:0px auto。
position:absolute top:50%,left:50% transform:translate(-50%,-50%)
弹性盒居中 justify-content:center align-items:center
②,居中一个浮动元素:
居中一个浮动元素(套一个大盒子给它margin:0px auto。)
设置当前div的宽度,然后设置margin-left:50%; position:relative; left:-250px;其中的left是 宽度的一半。
第二种方法:
1.居中div,div为块级元素,居中块级元素首先要设置宽度,然后margin:0 auto;就居中了。
2.居中一个浮动元素
<style>
.box{
position: relative;
left:50%;
float:left;
}
.item{
position: relative;
left:-50%;
float:left;
background: red;
}
</style>
<div class="box">
<div class="item">123</div>
</div>
5.Es5和es6的区别,说一下你知道的es6
相对于ES5更加简洁,提高了开发效率ES6新增的一些特性:
1)let声明变量和const声明常量,两个都有块级作用域ES5中是没有块级作用域的,并且var有变量提升,在let中,使用的变量一定要进行声明
2)箭头函数ES6中的函数定义不再使用关键字function(),而是利用了()=>来进行定义
3)模板字符串模板字符串是增强版的字符串,用反引号(`)标识,可以当作普通字符串使用,也可以用来定义多行字符串
4)解构赋值ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值
5)... 展开运算符可以将数组或对象里面的值展开;还可以将多个值收集为一个变量
es6新增:
新增模板字符串
箭头函数
for-of(用来遍历数据—例如数组中的值。)
ES6 将 Promise 对象纳入规范,提供了原生的 Promise 对象。
增加了 let 和 const 命令,用来声明变量。
还有就是引入 module 模块的概念
6.浏览器输入URL发生了什么?
域名解析
发起tcp三次握手
建立tcp连接之后发起htttp请求
服务器端响应http请求,浏览器得到html代码
浏览器器解析html代码,并请求html代码中的资源
浏览器对页面进行渲染呈现给用户