為什麼css樣式初始化,目的是為了什麼
js繼承
常見布局的方法
rem,px,em的區別
typeof去判斷資料型別返回值有哪些
快排和冒泡的原理
清除浮動的方法
定時器settimeout的執行機制
get和post的請求區別
浮動元素有什麼特性
之所以要進行css
樣式初始化是因為不同瀏覽器對標籤對預設樣式值不同
如果不進行初始化會導致頁面在不同瀏覽器上的顯示差異
最簡單的初始化樣式
*
**樣式初始化
body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, fieldset, legend, button, input, textarea, th, td
body, button, input, select, textarea
h1, h2, h3, h4, h5, h6
address, cite, dfn, em, var
code, kbd, pre, samp
small
ul, ol
a a:hover
sup
sublegend
fieldset, img
button, input, select, textarea
table
body,ol,ul,h1,h2,h3,h4,h5,h6,p,th,td,dl,dd,form,fieldset,legend,input,textarea,select
body
a a:hover
5 em
li img
table
p
body,ul,ol,li,p,h1,h2,h3,h4,h5,h6,form,fieldset,table,td,img,div
body
ul,ol
select,input,img,select
a a:link
a:visited
a:hover,a:active,a:focus
px
(pixel)畫素。相對長度單位。
畫素px是相對於顯示屏解析度而言的。使用px可以準確的定位網頁元素,但是,不同顯示器網頁的顯示效果可能會有差異,比較難相容。(⚠️ie無法調整用px
作為單位的字型大小。)
em
相對長度單位。
相對父元素的屬性而計算。示例: 如果父元素的font-size:16px
,那2em =2*16px = 32px;
所有未經調整的瀏覽器都符合:1em=16px
。
rem
相對長度單位。
rem
是css3新增的乙個單位。rem
是相對於html
根元素的font-size
值而言的.\
px
,em
,rem
轉換工具:
typeof
返回的資料型別一共有6種,分別是:
object
undefined
string
number
boolean
function
⚠️null
和array
返回object
使用乙個未定義的變數會報錯,但是typeof
檢測乙個為定義變數資料型別不會報錯,返回undefined
console.log(a); // error: a is not defined
typeof a ; // "undefined"
快排 -> 快速排序 是所有排序演算法中最快的乙個,其時間複雜度o(n log n)
基本思想:首先在列表中找乙個值作為基準值 -> 資料圍繞基準值進行 -> 將列表中小於基準值的元素移到陣列的左邊,大於基準值的元素移到陣列的右邊
氣泡排序
基本思想: 比較所有相鄰元素,如果前乙個比後面乙個大,兩者交換位置。最後比較大的值的元素就會一步一步的移動到後面正確的位置。較小的元素就像冒泡一樣出現在陣列前面位置。
清除浮動的本質: 主要是為了解決父級元素由於子級元素浮動引起的內部高度為0的問題。
常用的4種方法:
在最後乙個浮動元素後面新加乙個額外的標籤,給其設定屬性clear:both
示例:
.floata
.floatb
.otherclear
⚠️不推薦使用,因為新增無意義標籤
給父級元素新增偽類元素after
(推薦使用)
和第一種方法類似,但是不用新增多餘標籤
但是:ie6-7不支援偽元素:after,使用zoom:1觸發haslayout.
示例:
.father:after
.father
父級元素設定overflow:hidden
(不推薦使用)
優點: **簡潔
缺點:當內容過多的時候,不會自動換行的元素內容被隱藏,無法顯示溢位元素
使用before
和after
雙偽元素清除浮動
示例:
big
small
.clearfix:after,.clearfix:before
.clearfix:after
.clearfix
settimeout()
函式是用來指定某個函式或者某段**在指定時間段後執行。
返回: 這個函式會返回乙個整數,表示定時器timer的編號,可用於清除定時器。
補充:setinterval()
函式指定某個函式或者某個**每隔一定時間段執行一次。
返回: 同樣會返回乙個定時器編號timer,用於清除定時器。
settimeout()
與setinterval()
的執行機制是將本次的**移出本次執行等到下一輪event loop
時,檢測是否到了指定時間,如果到了就執行,如果沒到就等下次event loop
時重新判斷。
⚠️思考根據上述描述,如果settimeout
指定時間t執行一段**,那麼這段**一定是t毫秒時之後執行嗎?
理解settimeout執行機制,必須弄清楚以下名詞:
js單執行緒
任務佇列
同步任務
非同步任務
巨集任務微任務
get
用於獲取資訊,且無***,可快取
post
用於修改伺服器上的資料,有***,不可快取
報文上的區別:
get
請求引數放在url
中
post
請求引數放在body
中
資料上區別:
get
請求傳遞的引數有長度限制(url
最大長度微2048字元),只允許ascii
字元
post
引數無長度限制,且無型別限制
安全性上區別:
get
安全性較差,因為傳送資料是url
的一部分,在傳送密碼或其他敏感資訊時不能用get
請求
post
較安全因為引數不會被儲存在瀏覽器歷史或web
伺服器日誌中
脫離文件流
浮動元素後面如果不是塊級元素,後面的元素將會和它併排(除非設定元素寬度,或者放不下時會自動換行)
浮動元素的上乙個元素如果沒有浮動,浮動只會在當前行浮動。當浮動元素遇到浮動元素將同行浮動
元素設定了position:absolute或position:fixed時浮動會被忽略
浮動會引起父元素高度塌陷
浮動元素會被後乙個元素的margin-top影響
十道前端面試題(1)
陣列去重 http狀態碼 css彈性布局 position屬性有哪些值,分別有什麼含義 const和let的區別,可以改變const定義物件某個屬性嗎 this的理解,如何改變this的指向 let和var的區別,let的產生背景 var的變數提公升底層原理是什麼 箭頭函式,箭頭函式的特點 相同點 ...
十道前端面試題(9)
前端效能理解,優化有哪些 為什麼瀏覽器會產生同源策略 如何獲取元素的父節點和兄弟節點 jsonp的原理是什麼,處理script標籤還可以通過什麼實現?靜態資源標籤 http請求頭,響應頭裡面有哪些 margin坍塌 寫乙個api實現insertafter promise的狀態有哪些 preventd...
前端面試 前端面試題300道
jsonp是如何產生的 1 乙個眾所周知的問題,ajax直接請求普通檔案存在跨域無許可權問題,甭管你是靜態頁面 動態頁面 web伺服器,wcf,只要是跨域請求,一律不准。2 不過我們又發現,web頁面上呼叫js檔案時則不受是否跨域的影響 不僅如此,我們還發現凡是擁有 src 這個屬性的標籤都擁有跨域...