摘要:倒數(shù)第三位加上倒數(shù)第三位,再加上進位,如果大于等于,產(chǎn)生進位。。。。第一循環(huán)結(jié)束,進行第二循環(huán)。第二循環(huán)是指,數(shù)字較小或者長度較短的數(shù)字已經(jīng)加完結(jié)束了。拖拽節(jié)流一個函數(shù)只有在大于執(zhí)行周期時才執(zhí)行,周期內(nèi)調(diào)用不執(zhí)行。
實現(xiàn)promise
const PENDING = "pending" const RESOLVED = "resolved" const REJECTED = "rejected" function MyPromise(fn){ const that = this that.state = PENDING that.value = null that.resolvedCallbacks = [] that.rejectedCallbacks = [] function resolve(value) { if(that.state === PENDING) { that.state = RESOLVED that.value = value that.resolvedCallbacks.map(cb => cb(that.value)) } } function reject(value) { if(that.state === PENDING){ that.state = REJECTED that.value = value; that.rejectedCallbacks.map(cb => cb(that.value)); } } try { fn(resolve, reject) } catch (e) { reject(e) } } MyPromise.prototype.then = function(onFulfilled, onRejected) { const that = this //對傳入的兩個參數(shù)做判斷,如果不是函數(shù)將其轉(zhuǎn)為函數(shù) onFulfilled = typeof onFulfilled === "function" ? onFulfilled : v => v // onFulfilled = v => v onRejected = typeof onRejected === "function" ? onRejected : r => { throw r } if(that.state === PENDING) { that.resolvedCallbacks.push(onFulfilled) that.rejectedCallbacks.push(onRejected) } else if(that.state === RESOLVED) { onFulfilled(that.value) } else { onRejected(that.value) } } new MyPromise((resolve, reject) => { setTimeout(() => { resolve("成功的回調(diào)數(shù)據(jù)") }, 1000) }).then(value => { console.log("Promise.then: ", value) })大數(shù)相加
1.末尾加上末尾,如果大于等于10,產(chǎn)生進位。如果沒有進位就是0.2.倒數(shù)第二位加上倒數(shù)第二位,再加上進位,如果大于等于10,產(chǎn)生進位。3.倒數(shù)第三位加上倒數(shù)第三位,再加上進位,如果大于等于10,產(chǎn)生進位。。。。直到加完數(shù)字小的位數(shù)。第一循環(huán)結(jié)束,進行第二循環(huán)。第二循環(huán)是指,數(shù)字較?。ɑ蛘唛L度較短)的數(shù)字已經(jīng)加完結(jié)束了。剩下的就是第一循環(huán)加完后,剩下的進位與剩下的相加。
//bigNumberA和bigNumberB使用字符串存儲,否則會自動轉(zhuǎn)化為科學(xué)計數(shù) let bigNumberAdd = (bigNumberA, bigNumberB) => { let A = (bigNumberA + "").split(""); let B = (bigNumberB + "").split(""); let aLen = A.length, bLen = B.length, cLen = Math.max(aLen, bLen) + 1; let result = [], prefix = 0; for (let i = 0; i< cLen -1; i++ ) { let a = aLen - i - 1 >= 0 ? parseInt(A[aLen - i - 1]) : 0, b = bLen - i - 1 >= 0 ? parseInt(B[bLen - i - 1]) : 0; result[i] = (a + b + prefix) % 10; prefix = Math.floor((a + b + prefix) / 10); } return result.reverse().join(""); }; bigNumberAdd("45486646468484544661134868968","544545867466464646");純js寫一個動畫,5s由快到慢,速度自定義
animation ease
實現(xiàn)一個三角形.triangle{ width:0; height:0; border-left:50px solid transparent; border-right:50px solid transparent; border-buttom:100px solid yellow; }快排是怎樣實現(xiàn)的 冒泡排序? 手寫二分查找 手寫求一個字符串中出現(xiàn)次數(shù)最多且長度最長的子串 反轉(zhuǎn)鏈表
var reverseList=function(head){ if(head===null||head.next===null){ return head; } var new_head=reverseList(head.next); head.next.next=head; head.next=null; return new_head; };圖片懶加載怎么做? 防抖
函數(shù)防抖就是在函數(shù)需要頻繁觸發(fā)的情況下,只有足夠的空閑時間,才執(zhí)行一次。
典型應(yīng)用
百度搜索框在輸入稍有停頓時才更新推薦熱詞。
拖拽
function debounce(handler, delay){ delay = delay || 300; var timer = null; return function(){ var _self = this, _args = arguments; clearTimeout(timer); timer = setTimeout(function(){ handler.apply(_self, _args); }, delay); } }節(jié)流
一個函數(shù)只有在大于執(zhí)行周期時才執(zhí)行,周期內(nèi)調(diào)用不執(zhí)行。好像水滴積攢到一定程度才會觸發(fā)一次下落一樣。
典型應(yīng)用:
搶券時瘋狂點擊,既要限制次數(shù),又要保證先點先發(fā)出請求
窗口調(diào)整
頁面滾動
function throttle(handler, wait){
wait = wait || 300; var lastTime = 0; return function(){ var _self = this, _args = arguments; var nowTime = new Date().getTime(); if((nowTime - lastTime) > wait){ handler.apply(_self, _args); lastTime = nowTime; } } }js中最大整數(shù)是多少?
9開頭
數(shù)組扁平化是指將一個多維數(shù)組變?yōu)橐痪S數(shù)組[1, [2, 3, [4, 5]]] ------> [1, 2, 3, 4, 5]
遞歸法:
function flatten(arr) { let res = []; arr.map(item => { if(Array.isArray(item)) { res = res.concat(flatten(item)) } else { res.push(item); } }) return res; }js如何存儲一個數(shù)據(jù)?
cookie,session,localStorage,sessionStorage
正則表達式 nginx的適合做什么,反向代理,正向代理 http 中如果想要使用緩存需要設(shè)置哪些字段Expires、Cache-Control、(強緩存)
Last-Modified、Etag。(協(xié)商緩存)
map、filter、concat、slice
解析302、303、304、404、400狀態(tài)碼 對稱加密和非對稱加密有哪些區(qū)別?又有哪些應(yīng)用 websocket 如何傳輸文件WebSocket發(fā)送圖片時候,我建議是進行圖片壓縮,最好把圖片壓縮在100K以內(nèi)。
websocket發(fā)送大文件的時候,經(jīng)過我的測試,如果客戶端連接的服務(wù)器端的量比較大,分段發(fā)送,然后保存到數(shù)據(jù)庫。
進程是操作系統(tǒng)資源分配的基本單位,而線程是任務(wù)調(diào)度和執(zhí)行的基本單位。
個程序至少有一個進程,一個進程至少有一個線程。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/104316.html
摘要:個人前端文章整理從最開始萌生寫文章的想法,到著手開始寫,再到現(xiàn)在已經(jīng)一年的時間了,由于工作比較忙,更新緩慢,后面還是會繼更新,現(xiàn)將已經(jīng)寫好的文章整理一個目錄,方便更多的小伙伴去學(xué)習(xí)。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 個人前端文章整理 從最開始萌生寫文章的想法,到著手...
摘要:構(gòu)造函數(shù)通常首字母大寫,用于區(qū)分普通函數(shù)。這種關(guān)系常被稱為原型鏈,它解釋了為何一個對象會擁有定義在其他對象中的屬性和方法。中所有的對象,都有一個屬性,指向?qū)嵗龑ο蟮臉?gòu)造函數(shù)原型由于是個非標(biāo)準(zhǔn)屬性,因此只有和兩個瀏覽器支持,標(biāo)準(zhǔn)方法是。 從這篇文章開始,復(fù)習(xí) MDN 中級教程 的內(nèi)容了,在初級教程中,我和大家分享了一些比較簡單基礎(chǔ)的知識點,并放在我的 【Cute-JavaScript】系...
摘要:如何讓根據(jù)拆箱轉(zhuǎn)換,以及的隱式轉(zhuǎn)換,可以如下寫為什么計算機中所有的數(shù)據(jù)都是以二進制存儲的,所以在計算機計算時要把數(shù)據(jù)先轉(zhuǎn)換成二進制進行計算,然后把計算結(jié)果轉(zhuǎn)換成十進制。會存在精度丟失問題和的二進制都是以無線循環(huán)的小數(shù)的二進制的二進制 本想著記筆記里,但是筆記里沒有分類,還是以文章的形式,當(dāng)個人總結(jié)吧,這一篇就當(dāng)作JS基礎(chǔ)篇的記錄吧,有修改的和新增的持續(xù)更新~ 關(guān)于JS的一些小技巧 1:...
摘要:全文為這些年,我曾閱讀深入理解過或正在閱讀學(xué)習(xí)即將閱讀的一些優(yōu)秀經(jīng)典前端后端書籍。當(dāng)然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 全文為這些年,我曾閱讀、深入理解過(或正在閱讀學(xué)習(xí)、即將閱讀)的一些優(yōu)秀經(jīng)典前端/Java后端書籍。全文為純原創(chuàng),且將持續(xù)更新,未經(jīng)許可,不得進行轉(zhuǎn)載。當(dāng)然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 基礎(chǔ) 基礎(chǔ)書籍 進階 進階階段,深入學(xué)習(xí)的書...
摘要:全文為這些年,我曾閱讀深入理解過或正在閱讀學(xué)習(xí)即將閱讀的一些優(yōu)秀經(jīng)典前端后端書籍。當(dāng)然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 全文為這些年,我曾閱讀、深入理解過(或正在閱讀學(xué)習(xí)、即將閱讀)的一些優(yōu)秀經(jīng)典前端/Java后端書籍。全文為純原創(chuàng),且將持續(xù)更新,未經(jīng)許可,不得進行轉(zhuǎn)載。當(dāng)然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 基礎(chǔ) 基礎(chǔ)書籍 進階 進階階段,深入學(xué)習(xí)的書...
閱讀 2576·2021-08-11 11:16
閱讀 2997·2019-08-30 15:55
閱讀 3400·2019-08-30 12:53
閱讀 1641·2019-08-29 13:28
閱讀 3324·2019-08-28 18:17
閱讀 1029·2019-08-26 12:19
閱讀 2519·2019-08-23 18:27
閱讀 771·2019-08-23 18:17