//創(chuàng)建一個函數(shù)fn,返回一個數(shù)組飽含n個數(shù),每個數(shù)隨機在[2,32]取值,且不重復(fù)。
function fn(n){
var array=[];
for(var i=0;;i++){
if(array.length<n){
getRandomNum();
}else{
break;
}
}
return array;
}
function getRandomNum(array){
var num = Math.floor(Math.random()*31+2);
for(var j=0; j<array.length; j++){
if(array[i]==num){
return false;
}
}
array.push(num);
}
同花順五張連續(xù)相同花色,隨機七張牌,判斷是否為同花順。
先判斷花色,把花色相同的牌放入新數(shù)組。大于等于五張,排序數(shù)組,判斷是否連續(xù)。
http請求事務(wù)發(fā)生了什么?
域名解析 --> 發(fā)起TCP的3次握手 --> 建立TCP連接后發(fā)起http請求 --> 服務(wù)器響應(yīng)http請求,瀏覽器得到html代碼 --> 瀏覽器解析html代碼,并請求html代碼中的資源(如js、css、圖片等) --> 瀏覽器對頁面進行渲染呈現(xiàn)給用戶
http2.0有哪些改進?
http2.0大幅度提升了web性能,在與HTTP1.1完全語義兼容的基礎(chǔ)上,進一步減少了網(wǎng)絡(luò)延遲。
1.多路復(fù)用:多路復(fù)用允許同時通過單一的 HTTP/2 連接發(fā)起多重的請求-響應(yīng)消息。
HTTP/2通信都在一個連接上完成,這個連接可以承載任意數(shù)量的雙向數(shù)據(jù)流,可以更有效地使用TCP連接,讓高寬帶也能真正的服務(wù)于HTTP的性能提升。
總結(jié):
- 單連接多資源的方式,減少服務(wù)端的鏈接壓力,內(nèi)存占用更少,連接吞吐量更大。
- 由于TCP連接的減少而使網(wǎng)絡(luò)擁塞狀況得以改善,同時慢啟動時間減少,使擁塞和丟包恢復(fù)速度更快。
2.首部壓縮
HTTP/1.1并不支持HTTP首部壓縮,為此SPDY和HTTP/2應(yīng)運而生,HTTP/2使用了專門為首部壓縮而設(shè)計的HPACK算法。
3.服務(wù)器端推送(Server Push)
在HTTP/2中,服務(wù)器可以對客戶端的一個請求發(fā)送多個響應(yīng)。服務(wù)器推送有一個很大優(yōu)勢:可以緩存!也讓在遵循同源的情況下,不同頁面之間可以共享緩存資源成為可能。
前后端交互異步有哪些?
ajax,fetch
從PC端遷移到移動端:viewport meta width = device-width