1.define介紹
define 是 amd (異步模塊加載機(jī)制) 的api
2.express 是什么
express是一個(gè)最小的房铭,靈活的Node.js web 應(yīng)用程序開發(fā)框架讼呢,它提供了一套強(qiáng)大的功能來開發(fā)web 和移動(dòng)應(yīng)用程序
3.require 是什么?
異步加載模塊的加載器
4.var let const 的區(qū)別
var ?存在變量提升,let ?和const 塊級(jí)作用域
5.用過哪些Pc端以及移動(dòng)端框架
pc:vue.js .bootstrap,jQuery,react,
6.事件冒泡,事件委托以及事件捕獲
事件冒泡就是子級(jí)元素的某個(gè)事件被觸發(fā)治拿,它的上級(jí)元素的該事件也被遞歸執(zhí)行逃糟,冒泡的重點(diǎn)是window
阻止事件冒泡在子級(jí)元素上加e.stopPropagation阻止事件冒泡
事件委托其實(shí)是用了事件冒泡的原理,從點(diǎn)擊的元素開始躬贡,一遞歸方式向父元素傳播事件谆奥,點(diǎn)擊的事件被觸發(fā),就是事件捕獲
7.on拂玻,bind酸些,live的區(qū)別
bind是用來綁定一個(gè)或多個(gè)事件宰译,live 也可以綁定一個(gè)或者多個(gè)事件,但是還可以為新增加的元素綁定事件
on 是前兩種方式的結(jié)合魄懂,不僅如此 on方法還多了一個(gè)selector 方法沿侈,也就是子類選擇器,還可以事件委托
8.call市栗,apply缀拭,bind的區(qū)別
共同點(diǎn):都是在調(diào)用是,動(dòng)態(tài)指定函數(shù)中的this
不同點(diǎn):1.call填帽。apply 借用蛛淋,臨時(shí)綁定;2.bind 永久綁定
返回值:1.call,apply 不創(chuàng)建新函數(shù)篡腌,僅調(diào)用原函數(shù)褐荷;2,bind 基于原函數(shù),創(chuàng)建新函數(shù)對(duì)象嘹悼,之后調(diào)用的是新函數(shù)對(duì)象
9叛甫,在前端開發(fā)中,有一部分用戶行為會(huì)頻繁的觸發(fā)事件绘迁,而對(duì)于DON操作合溺,資源加載等耗費(fèi)性能的處理,很可能到導(dǎo)致卡頓缀台,甚至瀏覽器的奔潰棠赛,防抖和節(jié)流就是為了解決這一類的問題
防抖:
理解:人員上滿了,才發(fā)車
場(chǎng)景:實(shí)時(shí)搜索膛腐,拖拽
節(jié)流:
理解:大于等于10分鐘發(fā)一次車睛约,充電是一定間隔時(shí)間就會(huì)被觸發(fā)一次。(即預(yù)定一個(gè)函數(shù)只有在大于等于執(zhí)行周期才會(huì)執(zhí)行哲身,周期內(nèi)不執(zhí)行)
場(chǎng)景:窗口調(diào)整辩涝,頁面滾動(dòng),搶購時(shí)瘋狂點(diǎn)擊
懶加載原理:
先將img標(biāo)簽中的src鏈接設(shè)為同一張圖片(空白圖片)勘天,將其真正的圖片地址存儲(chǔ)在img標(biāo)簽的自定義屬性 (data-src)怔揩。當(dāng)js監(jiān)聽到該圖片元素進(jìn)入可視窗口時(shí),即將自定義屬性中的地址存儲(chǔ)到src屬性中脯丝,達(dá)到懶加載的目的商膊;
防止服務(wù)器響應(yīng)大量請(qǐng)求導(dǎo)致服務(wù)器響應(yīng)慢埃元,頁面卡頓或奔潰
常見的Http狀態(tài)碼
200 請(qǐng)求成功
301 永久性重定向
302 臨時(shí)重定向
403 沒有權(quán)限訪問
404 請(qǐng)求的資源抠刺,網(wǎng)頁 無法找到
503 服務(wù)器端無法響應(yīng) 服務(wù)器由于在維護(hù)或已經(jīng)超載無法響應(yīng)
11.什么情況下會(huì)遇到跨域闰歪,描述一下前端常見處理跨域的幾種方式卸亮;
瀏覽器最核心,最基本的安全功能時(shí)同源策略握截。限制一個(gè)源中加載文本或者腳本與其他源中的資源的交互方式卸奉,當(dāng)瀏覽器在執(zhí)行一個(gè)腳本時(shí)回檢查是否同源睬塌,只有同源的腳本才會(huì)執(zhí)行,如果不同源即為跨域
Jsonp:原理就是利用了script 標(biāo)簽不受同源策略的限制昆庇,在頁面中動(dòng)態(tài)插入了script,標(biāo)簽中src 屬性就是后端API的接口的地址末贾,并且以get的方式將前端回調(diào)處理函數(shù)名稱告訴后端,后端在響應(yīng)請(qǐng)求時(shí)凰锡,會(huì)將回調(diào)歸還未舟,并且將數(shù)據(jù)以參數(shù)的形式傳遞回去
cors:跨域資源共享圈暗,是一種允許當(dāng)前域的資源被其它域的腳本請(qǐng)求訪問的機(jī)制
服務(wù)器跨域:服務(wù)器中轉(zhuǎn)代理
前端向本地服務(wù)器發(fā)送請(qǐng)求掂为,本地服務(wù)器代替前端再向服務(wù)器發(fā)送請(qǐng)求,本地服務(wù)器是個(gè)中間商
window.postMessage ?可以向其它window 對(duì)象發(fā)送消息
web 前端 應(yīng)該從哪些方面來優(yōu)化網(wǎng)站性能
1.減少頁面體積员串,提升網(wǎng)絡(luò)加載
靜態(tài)資源壓縮合并勇哗,(js/css 代碼壓縮合并,雪碧圖)
靜態(tài)資源緩存
使用CDN (內(nèi)容分發(fā)網(wǎng)絡(luò)) 加載資源更快
2.優(yōu)化頁面渲染
css放在前面,js放后面
懶加載
減少DOM操作
13.瀏覽器端存儲(chǔ)有哪些寸齐,請(qǐng)描述他們的區(qū)別?
cookie,localStorage,sessionStorage,web SQL ,indexedDB,他們都是保存在瀏覽器端欲诺,且同源的
區(qū)別:
1.cookie 數(shù)據(jù)始終在同源的http 請(qǐng)求中攜帶(即使不需要),即cookie 在瀏覽器和服務(wù)器間來回傳遞渺鹦,而sessionStorage 和 localStorage 不會(huì)自動(dòng)把數(shù)據(jù)發(fā)給服務(wù)器扰法,僅在本地保存,
2.存儲(chǔ)大小限制也不同
3.數(shù)據(jù)有效期也不同毅厚,
4塞颁,作用域不用,
說一說 get 和post 的請(qǐng)求?
1吸耿,get 請(qǐng)求只能進(jìn)行URL 編碼祠锣,而post 支持多種編碼方式
2.get請(qǐng)求參數(shù)會(huì)被完整保留在瀏覽器歷史記錄里,而post 中的參數(shù)不會(huì)被保留
4.get請(qǐng)求在URL 中傳送的參數(shù)是有長(zhǎng)度限制的咽安,而post沒有
5.對(duì)參數(shù)的數(shù)據(jù)類型伴网,get 只接受ASCII 字符,而post 沒有限制
6.安全性妆棒,get 比post 更不安全澡腾,因?yàn)閰?shù)直接暴露在URL上,所以不能 用來傳遞敏感信息糕珊,get參數(shù)通過url傳遞动分,post 放在request body 中
7.GET后退、刷新無影響放接,post 數(shù)據(jù)會(huì)被重新提交
get 可被收藏為書簽刺啦,post不可以
8.http 與 https 的區(qū)別
http 是超文本傳輸協(xié)議,信息是明文傳輸纠脾,https 則是具有安全性的ssl 加密傳輸協(xié)議
9.http 是什么玛瘸?
http 是超文本傳輸協(xié)議蜕青,它是TCP/IP協(xié)議的一個(gè)應(yīng)用層協(xié)議,用于定義web 瀏覽器與web 服務(wù)器之間交互數(shù)據(jù)的過程以及通訊的格式