ES 6 +ES 5 的相关学习笔记

es6 let set map 箭头函数

移动端布局 rem em
rem与em都是相对单位,我们使用它们的目的就是为了适应各种手机屏幕。
rem是根据html根节点来计算的,而em是继承父元素的字体。比如下面一个demo

jq的兼容处理
高版本兼容低版本,实现相关平滑兼容处理。例如加入在jQuery引用的下方加入一个兼容包;版本冲突,加一些话。
设计模式
工厂模式,代理模式,
react生命周期
React 生命周期分为三种状态 1. 初始化 2.更新 3.销毁。

setstate异步还是同步
有时候同步,有时候异步
redux改变数据过程

异步操作放在哪个生命周期
因此就让其在子组件的componentDidUpdate中处理。
柯里化,高阶函数

闭包作用及缺点

prototype 和 __proto__区别
__proto__是每个对象都有的一个属性,而prototype是函数才会有的属性!!!
cookie localstorage indexDB区别及作用
sessionStorage、localStorage、cookie
相同点:都保存在浏览器端,同源的:
不同点:
1》传递方式不同
cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。
sessionStorage和loaclStorage不会自动把数据发给服务器,仅在本地保存。
2》数据大小不同
cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。
存储大小限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。
sessionStorage和localStorage虽然也有存储大小的限制,但比cookie大得多,可以达到5M或者更大。
3》数据有效期不同
sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;
localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;
cookie只在设置cookie过期时间之前一直有效,即使窗口或浏览器关闭。 Cookie具有生命周期
4》作用域不同
sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;
localStorage在所有同源窗口中都是共享的;
cookie也是在所有同源窗口中都是共享的。
Web Storage支持事件通知机制,可以将数据更新的通知发送给监听者。
Web Storage的api接口使用更方便。
其次说说LocalStorage,LocalStorage是用key-value键值模式存储数据,但跟IndexedDB不一样的是,它的数据并不是按对象形式存储。它存储的数据都是字符串形式。如果你想让LocalStorage存储对象,你需要借助JSON.stringify()能将对象变成字符串形式,再用JSON.parse()将字符串还原成对象。但如果要存储大量的复杂的数据,这并不是一种很好的方案。毕竟,localstorage就是专门为小数量数据设计的,所以它的api设计为同步的。而IndexedDB很适合存储大量数据,它的API是异步调用的。IndexedDB使用索引存储数据,各种数据库操作放在事务中执行。IndexedDB甚至还支持简单的数据类型。 --------------------- 本文来自 唐策 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/qq_29132907/article/details/80389398?utm_source=copy

call apply bind区别及作用
本质的就是改变 this 的指向。区别就是:实现的参数传入不同。
bind() 方法和前两者不同在于: bind() 方法会返回执行上下文被改变的函数而不会立即执行,而前两者是直接执行该函数。他的参数和call()相同。

前端优化 重绘 如何减少重排
Reflow 回流也叫做(重排) 和 replain 重绘
首先 : 弄清楚什么是回流和重绘
1.浏览器解析html 源码,构造出DOM 树,
2.浏览器开始对CSS 进行解析,构造渲染树。
3.绘制。
4. 重绘与回流
当DOM元素影响了元素的几何属性(例如宽和高),浏览器需要重新计算元素的几何属性,同样其它元素的几何属性也会和位置也会因此受到影响。浏览器会使渲染树中受到影响的部分失效,并重新构造渲染树。这个过程称为“重排”。 完成重排后,浏览器会重新绘制受影响的部分到屏幕上中,该过程称为“重绘”。
• 重排发生的情况:
添加或删除可见的DOM元素。
元素位置改变。
元素的尺寸改变(包括:内外边距、边框厚度、宽度、高度等属性的改变)。
内容改变。
页面渲染器初始化。
浏览器窗口尺寸改变。
• 重绘发生的情况:
重绘发生在元素的可见的外观被改变,但并没有影响到布局的时候。比如,仅修改DOM元素的字体颜色(只有Repaint,因为不需要调整布局)
第三点:如何减少。
1. 压缩replaints 和 reflows ,使用CSS 去尽量减少这些,一次性操作完毕。
2. 对多个dom进行操作时,我们可以使用一种“离线”方式。
3. 不要经常去访问计算后的样式

数组迭代方法

跨域

还有抽奖那个笔试题有没有好的思路

ES6中如何处理异步,手写一个promise,有哪些状态?
要想知道promise 的作用,就要先知道异步操作这个玩意。then用法,catch用法,all用法, race用法
https://www.cnblogs.com/guoyeqiang/p/8243838.html
pending进行中 fulfilled以成功 rejected已失败
resolved 已定型 resolve() reject()

var promise=new Promise(function(resolve,reject){
//code
if(/异步操作/){
resolve();
}else{
reject();
}
})

promise.then(function(value) {
// success
}, function(error) {
// failure
});

等同于
promise.then(
value=>{
// success
},
error=> {
// failure
}
);

// bad
promise
.then(function(data) {
// success
}, function(err) {
// error
});

// good
promise
.then(function(data) { //cb
// success
})
.catch(function(err) {
// error
});

原型链,https://www.cnblogs.com/shuiyi/p/5305435.html
要想知道原型链,就必须知道prototype 和 proto 这两个属性是两个下划线
1.Prototype 是函数才有的属性 __proto__是对象才有的属性是两个下划线
跑一遍这个就知道了。
var a = {};
console.log(a.prototype); //undefined
console.log(a.proto); //Object {}

var b = function(){}
console.log(b.prototype); //b {}
console.log(b.proto); //function() {}
2. __proto__到底指向谁 是两个下划线
到底指向谁,取决于其实现的方式。
2.1 字面量方式
2.2 构造器方式
2.3Object.create()方式
/1、字面量方式/
var a = {};
console.log(a.proto); //Object {}

console.log(a.proto === a.constructor.prototype); //true

/2、构造器方式/
var A = function(){};
var a = new A();
console.log(a.proto); //A {}

console.log(a.proto === a.constructor.prototype); //true

/3、Object.create()方式/
var a1 = {a:1}
var a2 = Object.create(a1);
console.log(a2.proto); //Object {a: 1}

console.log(a.proto === a.constructor.prototype); //false(此处即为图1中的例外情况)

3.什么是原型链。由于__proto__是任何对象都有的属性,JS 中万物皆对象,那么就会形成一条由__proto__串起来的链条,递归访问到头。
var A = function(){};
var a = new A();
console.log(a.proto); //A {}(即构造器function A 的原型对象)
console.log(a.proto.proto); //Object {}(即构造器function Object 的原型对象)
console.log(a.proto.proto.proto); //null

SESSION 是什么?
存储与服务器端验证用户信息的数据存储方式,主要是通过session_id 来验证用户。
https://blog.csdn.net/h19910518/article/details/79348051

猜你喜欢

转载自blog.csdn.net/qq_27300101/article/details/82963160