下列哪些是css3新增偽類選擇器,使用CSS替代JS實現(xiàn)幾種常見的特效?
可以代替JavaScript的CSS特效有很多,比如說通過偽類:hover、:actived等實現(xiàn)觸發(fā)效果,動畫效果可以用animation屬性,對圖像處理可以transform、filter等
如何讓hover失效?
在js里插入css樣式,hover就失效了。因為style的優(yōu)先級高于css偽類。
你遇到的前端面試題都有什么?
1. cookie session 的用途和區(qū)別,以及有效期
1、cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務器上。
2、cookie不是很安全,別人可以分析存放在本地的COOKIE并進行COOKIE欺騙
考慮到安全應當使用session。
3、session會在一定時間內保存在服務器上。當訪問增多,會比較占用你服務器的性能
考慮到減輕服務器性能方面,應當使用COOKIE。
4、單個cookie保存的數(shù)據(jù)不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。
2. vue的數(shù)據(jù)綁定原理,mvvm與mvc的區(qū)別MVVM:
m:model數(shù)據(jù)模型層 v:view視圖層 vm:ViewModelvue中采用的是mvvm模式,這是從mvc衍生過來的MVVM讓視圖與viewmodel直接的關系特別的緊密,就是為了解決mvc反饋不及時的問題
圖片說明一下:
說到MVVM就要說一下雙向綁定和數(shù)據(jù)劫持的原理,
MVC:
m:model數(shù)據(jù)模型層 v:view視圖層 c:controller控制器
原理:c層需要控制model層的數(shù)據(jù)在view層進行顯示
MVC兩種方式,圖片說明:
總結:
mvvm與mvc最大的區(qū)別:MVVM實現(xiàn)了view與model的自動同步,也就是model屬性改變的時候, 我們不需要再自己手動操作dom元素去改變view的顯示,而是改變屬性后該屬性對應的view層會自動改變。
不懂得可以復制鏈接查看:
https://www.pianshen.com/article/3716256399/
3. storage 的區(qū)別 sessionStorage localStoragelocalStorage的生命周期是永久性的。假若使用localStorage存儲數(shù)據(jù),即使關閉瀏覽器,也不會讓數(shù)據(jù)消失,除非主動的去刪除數(shù)據(jù),使用的方法如上所示。localStorage有l(wèi)ength屬性
sessionStorage 的生命周期是在瀏覽器關閉前。也就是說,在整個瀏覽器未關閉前,其數(shù)據(jù)一直都是存在的。sessionStorage也有l(wèi)ength屬性,其基本的判斷和使用方法和localStorage的使用是一致的
4.v-model雙向數(shù)據(jù)原理有一個文本框 通過v-bind綁定了value屬性 值為myname 是我們在vue實例中定義的屬性傳統(tǒng)我們獲取文本框值方法 可能通過getElementById找到文本框 然后獲取其value屬性但是vue中直接通過v-bind綁定了value屬性 所以不需要像之前那樣獲取值所以在后面的按鈕中獲取name值 直接獲取vue實例對象data里面的myname屬性即可
【數(shù)據(jù)為尊 ----數(shù)據(jù)映射到瀏覽器 如果數(shù)據(jù)v-model后修改(肯定input)然后到數(shù)據(jù)在有數(shù)據(jù)映射到瀏覽器頁面 ----映射關系統(tǒng)稱】
5.keepAlive用過嗎?什么作用?緩存路由組件
使用的是vue的一個組件,參考vue的官方文檔
使用這個東西可以保證我們在切換組件的時候,原來顯示的組件不被銷毀
-----【保障組件的數(shù)據(jù)不會被切換路由而銷毀數(shù)據(jù)】
<keep-alive include="Home"> Home是對應的組件對象的名字,不是路由的名字
<router-view></router-view>
</keep-alive>
6.多維數(shù)組拍平數(shù)組拍平也稱數(shù)組扁平化,就是將數(shù)組里面的數(shù)組打開,最后合并為一個數(shù)組
一紅六種方法吧……
了解的請看:https://www.cnblogs.com/guan-shan/p/10165737.html
7.跨域的原因 解決方案跨域是指一個域下的文檔或腳本試圖去請求另一個域下的資源,這里跨域是廣義的。
這樣就可以說同源策略----協(xié)議---端口---域名
原生的src和href可以解決跨域
代理可以解決
請求頭也可以攜帶瀏覽器提示的也可以解決
一般都是后端解決跨域問題
【別的需要了解看下方鏈接】
https://blog.csdn.net/qq_41604383/article/details/100770100
8.uniApp兼容問題§ 如果你使用cli創(chuàng)建項目(即項目根目錄是package.json),不管用什么ide,即便是用HBuilderX,切記cli項目的編譯器是在項目下的,HBuilderX不管怎么升級都不會影響編譯器版本。你需要手動npm update來升級編譯器。以及如果你想要安裝less、scss等預編譯器,也需要自己npm安裝在項目下,而不是在HBuilderX的插件管理里安裝。
§ 如果你使用離線打包,請注意HBuilderX升級后,真機運行基座和云打包對應引擎跟隨HBuilderX升級,而你的sdk需要手動升級。sdk的版本升級一般滯后HBuilderX正式版升級一兩天。
§ 如果你使用自定義基座,之前制作的自定義基座是不會跟隨HBuilderX升級的,升級HBuilderX后你應該重新制作新版自定義基座。
§ 如果你使用wgt升級,新版HBuilderX編譯的wgt,運行到之前的runtime上,一定要先測試好,看有沒有兼容性問題。如果有問題,就不要wgt升級,整包升級。
§ 考慮到向下兼容,uni-app編譯器在升級為新的自定義組件模式后,同時保留了對老編譯模式的向下兼容。在HBuilderX alpha版中,App端一定會使用新編譯器,不理會manifest配置。在HBuilderX 正式版中,新創(chuàng)建的項目會使用新編譯器,老項目不會強制使用,而是開發(fā)者自己在manifest里配置開啟。
§ 如果你使用其他ide開發(fā)uni-app,會經(jīng)常因為拼錯單詞而運行失敗,因為經(jīng)過webpack編譯一道,很多錯誤反應的不夠直觀,排錯時間很長,不如從開始就依賴有良好提示的HBuilderX,避免敲錯單詞。
§ 云打包的引擎版本說明HBuilderX Alpha,只有1套云打包機,不管你的HBuilderX alpha版本多少,對應的打包機一定是最新的alpha版的客戶端引擎。HBuilderX正式版,有2套打包機,一個是最新正式版,一個是次新正式版。中間的緊急更新版本沒有獨立打包機。舉個例子:HBuilderX 有1.8.0、1.8.1、1.8.2、1.9.0、1.9.1這幾個正式版。那么當前可用的打包機有1.9.1和1.8.2這2臺。(即每個大版本的最后一個版本)除了這2個HBuilderX版本外,其他版本的云打包都指向最新的1.9.1版對應的打包機。(即只保留2個大版本的云打包機)
【詳情請看】
https://ask.dcloud.net.cn/article/35845
web學起來難不難?
前端的學習路線如下:
第一階段HTML+CSS核心基礎 HTML,CSS核心基礎CSS過渡HTML5語義化標簽線性漸變,徑向漸變HTML新增標簽屬性CSS動畫Animation表單項新增屬性彈性盒模型CSS選擇器經(jīng)典布局練習(雙飛翼,CSS3偽類 品字布局) + 案例CSS偽元素響應式布局第二階段JavaScriptJavaScript基礎JavaScript操作DOMJavaScript面向對象(js高級)第三階段PC端整棧開發(fā)PC項目jQueryjQuery項目lessbootStrap第四階段ES6+Node+工程化ES6/7/8promisenpm常用命令git基礎(常用操作)git高級Node.js基礎git基礎(常用操作)http協(xié)議 & cookie & sessionMongoDBExpress框架ajax(原生,jQuery,axios,fetch)ajax庫基本封裝使用 promise封裝模塊化構建工具gulp,webpack4.0基礎第五階段React技術棧React基礎語法react-routerReact Antd使用ReduxReact移動端項目第六階段Vue技術棧Vue基礎VueRouterVuexVue源碼(v-model, 雙向數(shù)據(jù)綁定)VuePC項目-電商Vue后臺管理第七階段小程序小程序UniAppTypeScript第八階段就業(yè)指導+面試精講vue實戰(zhàn)(移動端)小程序實戰(zhàn) 面試精講就業(yè)指導不管學什么,都是完后開頭難。
你要針對性的去學習,不要一口吃個大胖子,學習是個循循漸進地過程。
建議按著學習路線去學習,基本這種都是針對企業(yè)的招聘來安排的課程。或者看看招聘信息去學習。
每天有效學習時長要有6個小時這樣,1-2小時的筆記時間,敲代碼的時長2-3小時。
編程一定要代碼量上去!!!
因為很多都是一學就會,一敲就廢。
俗話說,鍵盤敲爛月薪過萬;鍵盤落灰狗屎一堆。
學編程沒有什么捷徑,就是要多看別人的代碼,多敲自己的代碼。多思考為什么要這樣,培養(yǎng)編程思維。