一、module、export、import是什麼,有什麼用?前端
module、export、import是ES6用來統一前端模塊化的方案的設計思路和實現方案。git
export、import的出現統一了前端模塊化的實現方案,整合規範了瀏覽器/服務端的模塊化方法,用來取代web
傳統的AMD/CMD、requirejs、seaJS、commonJS等等一系列線段模塊不一樣的實現方案,使前端模塊化更加統一規範。算法
JS也能更加實現大型的應用程序開發。編程
import引入的模塊是靜態加載(編譯階段加載)而不是動態加載(運行時加載)。跨域
import引入export導出的接口值是動態綁定關係,即經過該接口,能夠取到模塊內部實時的值。數組
二、平常前端代碼開發中,有哪些值得用ES6去改進的編程優化或者規範?瀏覽器
經常使用箭頭函數來取代var self = this;的作法。緩存
經常使用let取代var命令安全
經常使用數組/對象的結構賦值來命名對象,結構更清晰、語義更明確、可讀性更好。
在長字符串多變量的組合場合,用模板字符串來取代字符串累加,能取得更好地效果何閱讀體驗。
用clsss類取代傳統的構造函數,來生成實例化對象。
在大型應用開發中,要保持module模塊化開發思惟,分清模塊之間的關係,經常使用import、export方法。
三、請你談談Cookie的弊端?
cookie雖然在持久保存客戶端數據提供了方便,分擔了服務器存儲的負擔,但仍是有不少侷限性的。
第一:「Cookie」數量和長度的顯示。每一個domain最多隻能有20條cookie,每一個cookie長度不能超過4KB,不然會被截掉。
第二:安全性問題。若是cookie被人攔截了,那人就能夠取得全部的session信息。即便加密也於事無補,由於攔截者並不須要知道
cookie的意義,他只要原樣轉發cookie就能夠
達到目的。
第三:有些狀態不可能保存在客戶端。例如,爲了防止重複提交表單,咱們須要在服務器保存一個計數器。若是咱們
把這個計數器保存在客戶端,那麼它起不到任何做用。
由於這些弊端(主要是cookie的大小和多少受哦限制),而且每次你請求一個新的頁面的時候cookie都會被髮送過去,這樣無形中浪費了
帶寬,另外cookie還須要指定做用域,不能夠跨域調用。
IE8之後,就出現一個web storage;它僅僅是爲了本地緩存數據而存在;可是Cookie也是不可或缺的;cookie的做用是與服務器進行交互,做爲HTTP規範的一部分而存在。
Cookie的有點:極高的擴展性和可用性
一、經過良好的編程,控制保存在cookie中的session對象的大小。
二、經過加密和安全傳輸技術(SSL),減小cookie被破解的可能性。
三、只在cookie中存放不敏感數據,即便被盜也不會有重大損失。
四、控制cookie的生命週期,使之不會永遠有效。偷盜者極可能拿到一個過時的cookie。
四、git fetch和git pull的區別?
git pull: 至關因而從遠程獲取最新版本並merge到本地。
git fetch:至關因而從遠程獲取最新版本到本地,不會自動merge。
五、svn與git的區別?
git是分佈式的,svn不是。
git跟svn同樣有本身的集中式版本庫或服務器,但git更傾向於被使用分佈式模式,克隆版本庫後,即便沒有網絡也可以commit文件,查看歷史版本記錄,
建立項目分支等,等網絡再次鏈接上push到服務器端。
git把內容按元數據方式存儲,而svn是按文件。全部的資源控制系統都是把文件的元信息隱藏在一個相似.svn,.cvs等的文件夾裏。git目錄是處於你的機器上的一個克隆版的
版本庫,它擁有中心版本庫上全部的東西,例如標籤、分支、版本記錄等。
git沒有一個全局的版本號,svn有。
git的內容完整性優於svn。由於git的內容存儲使用的是SHA-1哈希算法。
git能夠有無限個版本庫,svn只能有一個指定中央版本庫。當svn中央版本庫有問題時,全部工做成員都一塊兒癱瘓直到版本庫維修完畢或者新的版本庫設立完成。
每個git都是一個版本庫,區別是他們是否擁有活躍目錄(Git Working Tree)。
若是是主要版本庫有問題,工做成員仍然能夠在本身的本地版本庫(local repository)提交。
等待主要版本庫恢復便可。工做成員也能夠提交到其餘的版本庫。