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
總結
以上是生活随笔為你收集整理的ES 6 +ES 5 的相关学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 迈巴赫火花塞要经常更换吗?
- 下一篇: 苏B牌照的车辆绍兴怎么移?