发表于: 2019-12-11 15:00:16
1 1187
今天完成的事:完成了之前师兄提出的问题的解惑
明天要完成的事:继续复习准备,并了解angular的这些内容还有复盘的流程
难题:
收获:
总结上次复盘评审的问题:
box-sizeing的常用值
inherit继承border-box和content-box
rem和em:
em做文字单位是取决于父元素的字体大小,但是做高宽和padding和margin单位时是取决于自身的字体大小决定的
rem取决于根元素的大小,
浅拷贝和深拷贝:
默认情况下对象之间的直接赋值都是浅拷贝
默认情况下一个对象的属性如果是基本数据类型, 那么都是深拷贝
如果对象的属性包含了引用数据类型, 才真正的区分深拷贝和浅拷贝
深拷贝:
json:parse将json对象转化成JavaScript对象
json:stringify将json对象转化成字符串
先是通过json.stringify将数据转化成字符串,在用json.parse转化成原生js对象,
如果不转化直接将jsonstringify打印出来就是字符串,
使用递归的方式实现深拷贝:
//使用递归的方式实现数组、对象的深拷贝
function deepClone1(obj) {
//判断拷贝的要进行深拷贝的是数组还是对象,是数组的话进行数组拷贝,对象的话进行对象拷贝
var objClone = Array.isArray(obj) ? [] : {};
//进行深拷贝的不能为空,并且是对象或者是
if (obj && typeof obj === "object") {
for (key in obj) {
if (obj.hasOwnProperty(key)) {
if (obj[key] && typeof obj[key] === "object") {
objClone[key] = deepClone1(obj[key]);
} else {
objClone[key] = obj[key];
}
}
}
}
return objClone;
}
通过jQuery的extend方法实现深拷贝
var array = [1,2,3,4];
var newArray = $.extend(true,[],array);
各种方法的返回值:
push:在最后添加一个值:返回的是新的长度
pop:在最后删除一个值:返回他删除的那个值:也就是原数组的最后那个值
shift:在数组最开始删除一个值,也是返回他删除的那个值
unshift:在数组最开始添加一个值,返回一个新的长度
同源策略:同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。
端口是什么:
所谓的端口,就好像是门牌号一样,客户端可以通过ip地址找到对应的服务器端,但是服务器端是有很多端口的,每个应用程序对应一个端口号,通过类似门牌号的端口号,客户端才能真正的访问到该服务器。为了对端口进行区分,将每个端口进行了编号,这就是端口号
端口号的主要作用是表示一台计算机中的特定进程所提供的服务;在两台计算机通信时,只发IP地址是不够的,因为同一台计算机上跑着多个网络程序。一个IP包来了之后,到底是交给浏览器还是QQ,就需要端口号来区分。每个网络程序都向操作系统申请唯一的端口号,这样,两个进程在两台计算机之间建立网络连接就需要各自的IP地址和各自的端口号。
一个进程也可能同时与多个计算机建立链接,因此它会申请很多端口。
nginx的反向代理解决跨域的原理:
一种说法:反向代理的原理就是将前端的地址和后端的地址用nginx转发到同一个地址下,
另一种说法:nginx作为反向代理服务器,就是把http请求转发到另一个或者一些服务器上。通过把本地一个url前缀映射到要跨域访问的web服务器上,就可以实现跨域访问。对于浏览器来说,访问的就是同源服务器上的一个url。而nginx通过检测url前缀,把http请求转发到后面真实的物理服务器。并通过rewrite命令把前缀再去掉。这样真实的服务器就可以正确处理请求,并且并不知道这个请求是来自代理服务器的。
get和post的区别
- GET - 从指定的资源请求数据。
- 能被缓存
- 有长度限制,有数据类型限制:必须是ASCII字符;
- POST - 向指定的资源提交要被处理的数据。
- 不能缓存
- 不存在长度限制,也没有数据类型限制:可以是2进制的数据
如果回退或者刷新的话:
post会重新提交
get的话不会
定时器的区别和清除:
区别:
setInterval()
是循环执行,
setimeout是定时执行
清除:释放内存
阻止定时器执行事件;
本地储存:
localStorage:一直储存
sessionStorage:储存到页面关闭
cookie:一直储存
1. cookie在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。
2. cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。存储大小限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。
3. 数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。
4. 作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localStorage 在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的。Web Storage 支持事件通知机制,可以将数据更新的通知发送给监听者。Web Storage 的 api 接口使用更方便。
评论