目录
4.说一下对Cookie和Session的认知,Cookie有哪些限制?
12.localStorage和sessionStorage
1.js中new操作符
new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。
例:var obj = new Base();
var obj = {};
obj.__proto__ = Base.prototype;
Base.call(obj);
第一行,创建一个空对象obj
第二行,将这个空对象的proto成员指向了Base函数对象prototype成员对象
第三行,将Base函数对象的this指针替换成obj。
2.路由
通过改变URL
,在不重新请求页面的情况下,更新页面视图。
实现主要有2
种方式:
- 利用
URL
中的hash
("#"
); - 利用
History interface
在HTML5
中新增的方法;
一般的需求场景中,hash
模式与history
模式是差不多的,根据MDN
的介绍,调用history.pushState()
相比于直接修改hash
主要有以下优势:
pushState
设置的新url
可以是与当前url
同源的任意url
,而hash
只可修改#
后面的部分,故只可设置与当前同文档的url
pushState
设置的新url
可以与当前url
一模一样,这样也会把记录添加到栈中,而hash
设置的新值必须与原来不一样才会触发记录添加到栈中pushState
通过stateObject
可以添加任意类型的数据记录中,而hash
只可添加短字符串pushState
可额外设置title
属性供后续使用
3.token
token是在服务器端产生的。如果前端使用用户名/密码向服务器请求认证,服务器认证成功,那么在服务器端会返回token给前端。前端可以在每次请求的时候带上token以证明自己的合法地位。
token就相当于客户端登录账号的唯一标识,在做一些数据请求的时候,后台会要求在请求头中携带token,如果没有token,或者token过期,那么这个时候就会对这个客户端进行返回响应的数据,然后在前端解析这些数据,判断是token过期还是没有携带,从而让用户进行相应的操作。
token是在向后台请求数据的时候必不可少的。如果没有token,那么后台要么不会返回响应的数据,要么就会返回一些无关紧要的数据。
4.说一下对Cookie和Session的认知,Cookie有哪些限制?
1. cookie数据存放在客户的浏览器上,session数据放在服务器上。
2. cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。
3. session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用cookie。
4. 单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
5.304
304:Not Modified 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源
6.浏览器输入网址到页面渲染全过程
DNS解析
TCP连接
发送HTTP请求
服务器处理请求并返回HTTP报文
浏览器解析渲染页面
连接结束
7.CSS单位
- px:像素单位
- rem:相对于根元素html的font-size计算
- em:相对于元素font-size计算
- vw:视窗宽度的百分比
- vh:视窗高度的百分比
- vmin:当前较小的vw和vh
- vmax:当前较大的vw和vh
8.get和post
-
GET在浏览器回退时是无害的,而POST会再次提交请求。
-
GET产生的URL地址可以被Bookmark,而POST不可以。
-
GET请求会被浏览器主动cache,而POST不会,除非手动设置。
-
GET请求只能进行url编码,而POST支持多种编码方式。
-
GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
-
GET请求在URL中传送的参数是有长度限制的,而POST么有。
-
对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
-
GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
-
GET参数通过URL传递,POST放在Request body中。
9.Vue&Jquery
1、工作原理
Vue做到了数据和视图完全分离开,它首先把值和js对象进行绑定,然后修改js对象的值,Vue框架就会自动把dom的值就行更新。对数据进行操作不再需要引用相应的dom对象,他们通过Vue对象实现数据和视图的相互绑定。
jQuery则是要先使用选择器($)来选取dom对象,然后对dom对象进行操作(如赋值、取值、事件绑定等)。
2、侧重
vue侧重数据绑定,可以应用于复杂数据操作的后台页面。如:表单填写页面
jquery侧重样式操作,动画效果等;可以应用于一些html5的动画页面,一些需要js来操作页面样式的页面中。
10.Link&@import
- link属于HTML,而@import属于css
- 页面被加载时,link会被同时加载,而@import引用的css会等到页面加载结束后加载
- link是HTML标签,所以没有兼容性,而@import只有IE5以上才能识别
- link方式样式的权重高于@import
11.vue-router的模式
hash模式
监听hashchange事件实现前端路由,利用url中的hash来模拟一个hash,以保证url改变时,页面不会重新加载。
history模式
利用pushstate和replacestate来将url替换但不刷新,但是一旦刷新,就会可能404,因为没有当前的真正路径,要想解决这一问题需要后端配合,将不存在的路径重定向到入口文件
12.localStorage和sessionStorage
localStorage和sessionStorage一样都是用来存储客户端临时信息的对象。
sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问。并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅是会话级别的存储。只允许同一窗口访问。
而localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。同源可以读取并修改localStorage数据。
13.css选择器优先级
1. !important
在属性后面写上这条样式,会覆盖掉页面上任何位置定义的元素的样式。
2. 行内样式,在style属性里面写的样式。
3. id选择器
4. class选择器
5. 标签选择器
6. 通配符选择器*
7. 浏览器的自定义属性和继承