es6中的箭頭函數和普通的函數有什麼區別
- 箭頭函數沒有prototype(原型),所以箭頭函數本身沒有this, 箭頭函數的this指向在定義的時候繼承自外層第一個普通函數的this
- 箭頭函數不能當作構造函數,也就是說,不能使用new命令,否則會報錯。
- 箭頭函數不能使用argumen對象,該對象在函數體內不存在。如果要用,可以用rest參數代替。
- 變量提升:由於js的內存機制,function的級別最高,而用箭頭函數定義函數的時候,需要var(let、const)關鍵字,而var所定義的變量不能得到變量提升。故箭頭函數一定要定義於調用之前。
promise
function runAsync(){
return newPromise(function(resolve, reject){
setTimeout(()=>{
console.log('執行完成');
resolve('隨便什麼數據');
},1000)
})
}
runAsync().then()
h5新增的標籤有哪些?
結構語義化標籤:header nav footer article
媒體標籤 video audio embed
用動畫實現一個鐘擺,左右各30度;用事件綁定實現一個頁面拖動;
animation: pendulum 4s infinite;
@keyframes pendulum{
0 {transform: rotate(0deg);}
25% {transform: rotate(-30deg);}
50% {transform: rotate(0deg);}
75% {transform: rotate(30deg);}
100% {transform: rotate(0deg);}
}
垂直居中有哪幾種實現方式?
一:
.parent{
display: flex;
justify-content:center;
align-items:Center;
}
二:
.parent {
display: table-cell;
text-align: center;
vertical-align: middle;
}
.child {
display: inline-block;
}
三:
.parent {
position: relative;
}
.child {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
width: 80px;
margin: auto;
}
四:
.child{
position: absolute;
top: 50%;
left: 50%; /*定位margin-left:50%的位置*/
transform: translate(-50%,-50%); /*使元素本身向左
}
瞭解瀏覽器緩存機制嗎?瀏覽器緩存有哪些,彼此有哪些區別?
https://blog.csdn.net/zouzixu...
九種緩存: https://www.jianshu.com/p/2e1...
http和https的區別,應用場景
HTTP協議傳輸的數據都是未加密的,也就是明文的,因此使用HTTP協議傳輸隱私信息非常不安全,爲了保證這些隱私數據能加密傳輸,於是網景公司設計了SSL(Secure Sockets Layer)協議用於對HTTP協議傳輸的數據進行加密,從而就誕生了HTTPS。簡單來說,HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比http協議安全。
HTTPS和HTTP的區別主要如下:
1、https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。
2、http是超文本傳輸協議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協議。
3、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,後者是443。
4、http的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。
工作原理:
- 首先服務端給客戶端傳輸證書,這個證書就是公鑰,只是包含了很多的信息,比如說證書的辦法機構,證書的過期時間
- 客戶端進行證書的解析,比如說驗證辦法機構,過期時間,如果發現沒有任何問題,就生成一個隨機值(私鑰),然後用證書對這個私鑰進行加密,併發送給服務端
- 服務端使用私鑰將這個信息進行解密,得到客戶端的私鑰,然後客戶端和服務端就可以通過這個私鑰進行通信了
- 服務端將消息進行對稱加密(簡單來說就是講消息和私鑰進行混合,除非知道私鑰否則服務進行解密),私鑰正好只有客戶端和服務端知道,所以信息就比較安全了
- 服務端將進行對稱加密後的消息進行傳送 客戶端使用私鑰進行信息的解密
實現tab切換
$(".nav li").click(function(){
let i = $(this).index();
$('.nav li').eq(index).addClass("active").siblings().removeClass("active");
})