css
標(biāo)準(zhǔn)盒模型:內(nèi)容的寬度(content)+border+padding+margin;
position的值途样?
static(默認(rèn)):按照正常文檔流進(jìn)行排列
relative(相對(duì)定位)不脫離文檔流九昧,參考自身的top注整、right厚柳、bottom涨颜、left進(jìn)行定位
absolute(絕對(duì)定位)參考其最近的一個(gè)非static的父級(jí)元素通過(guò)top、right依沮、bottom涯贞、left進(jìn)行定位
fixed(固定定位)所固定的參照對(duì)象是可視窗口的位置
清除浮動(dòng)
<1> 父級(jí)div定義高度
<2> 最后一個(gè)浮動(dòng)元素后加空div標(biāo)簽,并添加樣式clear:both
<3> 包含浮動(dòng)元素的父標(biāo)簽添加樣式overflow為hidden和auto
<4> 父級(jí)定義zoom
CSS選擇器有哪些危喉?
CSS選擇符:id選擇器(#myid)宋渔、類(lèi)選擇器(.myclassname)、標(biāo)簽選擇器(div, h1, p)辜限、相鄰選擇器(h1 + p)皇拣、子選擇器(ul > li)、后代選擇器(li a)薄嫡、通配符選擇器(*)氧急、屬性選擇器(a[rel=”external”])、偽類(lèi)選擇器(a:hover, li:nth-child)
display:none與visibility:hidden的區(qū)別毫深?
display:none 不顯示對(duì)應(yīng)的元素吩坝,在文檔布局中不再分配空間(回流+重繪)
visibility:hidden 隱藏對(duì)應(yīng)元素,在文檔布局中仍保留原來(lái)的空間(重繪)
CSS優(yōu)先級(jí)算法如何計(jì)算费什?
元素選擇符: 1
class選擇符: 10
id選擇符:100
元素標(biāo)簽:1000
!important聲明的樣式優(yōu)先級(jí)最高钾恢,如果沖突再進(jìn)行計(jì)算。
如果優(yōu)先級(jí)相同鸳址,則選擇最后出現(xiàn)的樣式瘩蚪。
繼承得到的樣式的優(yōu)先級(jí)最低。
CSS3有哪些新特性稿黍?
RGBA和透明度
background-image background-origin(content-box/padding-box/border-box) background-size background-repeat
word-wrap(對(duì)長(zhǎng)的不可分割單詞換行)word-wrap:break-word
文字陰影:text-shadow: 5px 5px 5px #FF0000;(水平陰影疹瘦,垂直陰影,模糊距離巡球,陰影顏色)
font-face屬性:定義自己的字體
圓角(邊框半徑):border-radius 屬性用于創(chuàng)建圓角
邊框圖片:border-image: url(border.png) 30 30 round
盒陰影:box-shadow: 10px 10px 5px #888888
媒體查詢:定義兩套css言沐,當(dāng)瀏覽器的尺寸變化時(shí)會(huì)采用不同的屬性
call和apply的用法
call和apply相同點(diǎn):改變函數(shù)中this的指向
不同點(diǎn):函數(shù)參數(shù)的傳遞形式
call將函數(shù)參數(shù)依次傳入
apply將函數(shù)參數(shù)用一個(gè)數(shù)組的形式傳入
事件委托是什么
利用事件冒泡的原理邓嘹,將事件綁定在父容器中,讓父容器代為觸發(fā)
跨域定義:
跨域是指在瀏覽器中险胰,由于同源策略的實(shí)施汹押,導(dǎo)致無(wú)法從當(dāng)前頁(yè)面(即源域)訪問(wèn)并執(zhí)行來(lái)自另一個(gè)網(wǎng)站(目標(biāo)域)的腳本。這通常發(fā)生在嘗試從一個(gè)域名請(qǐng)求另一個(gè)不同的域名起便、端口或協(xié)議的資源時(shí)棚贾。同源策略是瀏覽器為了安全原因而設(shè)置的一種限制,它確保了在互聯(lián)網(wǎng)上的數(shù)據(jù)交換受到一定的約束榆综,以防止?jié)撛诘墓艉蛿?shù)據(jù)泄露風(fēng)險(xiǎn)妙痹。因此,跨域現(xiàn)象是由于這種安全策略引起的鼻疮。
跨域的解決方法:
JSONP怯伊,document.domain,window.postMessage判沟,window.name耿芹,Access Control,使用 CORS 實(shí)現(xiàn)跨域調(diào)用
https://blog.csdn.net/johnny_mu/article/details/104334180
簡(jiǎn)單介紹一下繼承
js
是基于對(duì)象的挪哄,它沒(méi)有類(lèi)的概念猩系。所以,要想實(shí)現(xiàn)繼承中燥,可以用js
的原型prototype機(jī)制或者用apply
和call
方法去實(shí)現(xiàn)
- 繼承:子類(lèi)可以使用父類(lèi)的所有功能,并且對(duì)這些功能進(jìn)行擴(kuò)展塘偎。繼承的過(guò)程疗涉,就是從一般到特殊的過(guò)程。
flex
控制水平居中的屬性是 justify-content 而需要控制垂直居中的時(shí)候只需要將 align-items 設(shè)置為 center 即可
組件通信
- 父組件傳子組件:
將data里面獲取到的值通過(guò)在template中的子組件標(biāo)簽上通過(guò)v-bind:xxx = ''
這樣父組件的操作就完成了吟秩,然后再子組件中咱扣,通過(guò)props{list:Array}來(lái)接收從父組件傳過(guò)來(lái)的值,接受到的值就可在
子組件的template中使用涵防。這樣就完成了父組件將數(shù)據(jù)傳輸?shù)阶咏M件的全部過(guò)程闹伪。 - 子組件傳父組件:
子組件用on來(lái)監(jiān)聽(tīng)自定義的事件
這里拿click舉例壮池,當(dāng)子組件上綁定被點(diǎn)擊事件觸發(fā)時(shí)偏瓤,可以在這個(gè)觸發(fā)事件的函數(shù)中
使用Vue自帶的this.$emit(‘父組件接收的事件名’,要傳輸?shù)膮?shù))椰憋,這樣子組件就完成了厅克。然后在父組件中的template里的對(duì)應(yīng)
子組件上通過(guò)@事件名 = ‘func’ 然后在父組件的method中補(bǔ)全這個(gè)func,這個(gè)func中將從子組件中穿過(guò)來(lái)的值賦值給父組件的data的
kv值,然后就獲得到子組件中的傳過(guò)來(lái)的值了
js
vue當(dāng)中的指令和它的用法橙依?
答:v-if:判斷是否隱藏证舟;v-for:數(shù)據(jù)循環(huán)出來(lái)硕旗;v-bind:class:綁定一個(gè)屬性;v-model:實(shí)現(xiàn)雙向綁定
怎么定義vue-router的動(dòng)態(tài)路由女责?怎么獲取傳過(guò)來(lái)的動(dòng)態(tài)參數(shù)漆枚?
在router目錄下的index.js文件中,對(duì)path屬性加上/:id抵知。
使用router對(duì)象的params.id墙基。
this.$route.query.project_id
v-model是什么?怎么使用辛藻? vue中標(biāo)簽怎么綁定事件碘橘?
可以實(shí)現(xiàn)雙向綁定,指令(v-class吱肌、v-for痘拆、v-if、v-show氮墨、v-on)纺蛆。vue的model層的data屬性。綁定事件
v-show和v-if指令的共同點(diǎn)和不同點(diǎn)?
v-show指令是通過(guò)修改元素的displayCSS屬性讓其顯示或者隱藏
v-if指令是直接銷(xiāo)毀和重建DOM達(dá)到讓元素顯示和隱藏的效果
請(qǐng)列舉出3個(gè)Vue中常用的生命周期鉤子函數(shù)?
created: 實(shí)例已經(jīng)創(chuàng)建完成之后調(diào)用,在這一步,實(shí)例已經(jīng)完成數(shù)據(jù)觀測(cè), 屬性和方法的運(yùn)算, watch/event事件回調(diào). 然而, 掛載階段還沒(méi)有開(kāi)始, el 替換规揪,并掛載到實(shí)例上去之后調(diào)用該鉤子桥氏。如果 root 實(shí)例掛載了一個(gè)文檔內(nèi)元素,當(dāng) mounted 被調(diào)用時(shí) vm.$el 也在文檔內(nèi)猛铅。
請(qǐng)簡(jiǎn)述下Vuex的原理和使用方法
一個(gè)應(yīng)用可以看作是由上面三部分組成: View, Actions,State,數(shù)據(jù)的流動(dòng)也是從View => Actions => State =>View 以此達(dá)到數(shù)據(jù)的單向流動(dòng).但是項(xiàng)目較大的, 組件嵌套過(guò)多的時(shí)候, 多組件共享同一個(gè)State會(huì)在數(shù)據(jù)傳遞時(shí)出現(xiàn)很多問(wèn)題.Vuex就是為了解決這些問(wèn)題而產(chǎn)生的.
Vuex可以被看作項(xiàng)目中所有組件的數(shù)據(jù)中心,我們將所有組件中共享的State抽離出來(lái),任何組件都可以訪問(wèn)和操作我們的數(shù)據(jù)中心.
上圖可以很好的說(shuō)明Vuex的組成,一個(gè)實(shí)例化的Vuex.Store由state, mutations和actions三個(gè)屬性組成:
state中保存著共有數(shù)據(jù)
改變state中的數(shù)據(jù)有且只有通過(guò)mutations中的方法,且mutations中的方法必須是同步的
如果要寫(xiě)異步的方法,需要些在actions中, 并通過(guò)commit到mutations中進(jìn)行state中數(shù)據(jù)的更改.
vuex有哪幾種屬性字支?
答:有五種,分別是 State奸忽、 Getter堕伪、Mutation 、Action栗菜、 Module
vuex的Getter特性是欠雌?
getters 可以對(duì)State進(jìn)行計(jì)算操作,它就是Store的計(jì)算屬性
vue-router有哪幾種導(dǎo)航鉤子疙筹?
三種富俄,
第一種:是全局導(dǎo)航鉤子:router.beforeEach(to,from,next),作用:跳轉(zhuǎn)前進(jìn)行判斷攔截而咆。
第二種:組件內(nèi)的鉤子
第三種:?jiǎn)为?dú)路由獨(dú)享組件
簡(jiǎn)述一下Sass霍比、Less,且說(shuō)明區(qū)別翘盖?
他們是動(dòng)態(tài)的樣式語(yǔ)言桂塞,是CSS預(yù)處理器,CSS上的一種抽象層。他們是一種特殊的語(yǔ)法/語(yǔ)言而編譯成CSS馍驯。
變量符不一樣阁危,less是@玛痊,而Sass是$;
Sass支持條件語(yǔ)句,可以使用if{}else{},for{}循環(huán)等等狂打。而Less不支持;
Sass是基于Ruby的擂煞,是在服務(wù)端處理的,而Less是需要引入less.js來(lái)處理Less代碼輸出Css到瀏覽器
vuex是什么趴乡?怎么使用对省?哪種功能場(chǎng)景使用它?
vue框架中狀態(tài)管理晾捏。在main.js引入store蒿涎,注入。新建了一個(gè)目錄store惦辛,….. export 劳秋。場(chǎng)景有:?jiǎn)雾?yè)應(yīng)用中,組件之間的狀態(tài)胖齐。音樂(lè)播放玻淑、登錄狀態(tài)、加入購(gòu)物車(chē)
請(qǐng)說(shuō)出vue.cli項(xiàng)目中src目錄每個(gè)文件夾和文件的用法呀伙?
assets文件夾是放靜態(tài)資源补履;components是放組件;router是定義路由相關(guān)的配置;view視圖剿另;app.vue是一個(gè)應(yīng)用主組件箫锤;main.js是入口文件
split() join() 的區(qū)別
答案:前者是將字符串切割成數(shù)組的形式,后者是將數(shù)組轉(zhuǎn)換成字符串
- 數(shù)組方法pop() push() unshift() shift()
答案:push()尾部添加 pop()尾部刪除
unshift()頭部添加 shift()頭部刪除
. 閉包是什么雨女,有什么特性麻汰,對(duì)頁(yè)面有什么影響
答案:閉包就是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù),使得函數(shù)不被GC回收,如果過(guò)多使用閉包戚篙,容易導(dǎo)致內(nèi)存泄露