前端面試題二

1徘键、float的作用?

定義元素在哪個方向浮動(left,right,none,inherit)受扳。浮動元素會生成一個塊級框序无,不論它本身是何種元素验毡。

接下來會有一系列的問題:
1)怎么清除浮動?
  • A帝嗡、在浮動元素下方添加空div行晶通,并添加css樣式
.clear{
   clear:both; 
   height: 0; 
   overflow:hidden;
}
  • B、父級div定義 overflow屬性
div{
   overflow:auto| hidden
}
  • C哟玷、添加偽元素:after 三行情書
.content :after {
    clear: both;
    content: '';
    display: block;
}
2)偽類和偽元素有哪些狮辽?區(qū)別是什么?

偽類

偽類

css3新增偽類
p:first-of-type 選擇屬于其父元素的首個<p>元素的每個<p>元素巢寡。
p:last-of-type 選擇屬于其父元素的最后<p>元素的每個<p>元素喉脖。
p:only-of-type 選擇屬于其父元素唯一的<p>元素的每個<p>元素。
p:only-child 選擇屬于其父元素的唯一子元素的每個<p>元素抑月。
p:nth-child(2) 選擇屬于其父元素的第二個子元素的每個<p>元素树叽。
:enabled、:disabled 控制表單控件的禁用狀態(tài)谦絮。
:checked 單選框或復(fù)選框被選中题诵。

偽元素

偽元素

區(qū)別:
A、偽類本質(zhì)上是為了彌補常規(guī)CSS選擇器的不足层皱,以便獲取到更多信息(通常加一個class可以達(dá)到相同的效果)
B性锭、偽元素本質(zhì)上是創(chuàng)建了一個有內(nèi)容的虛擬容器(添加一個標(biāo)簽元素才能達(dá)到相同的效果)
C、CSS3中偽類和偽元素的語法不同(:和::)
D叫胖、可以同時使用多個偽類草冈,而只能同時使用一個偽元素

參考文章:CSS3中偽類和偽元素的特性和區(qū)別

2、寫出下面代碼的運行結(jié)果
var value1 = 0, value2 = 0, value3 = 0;
for ( var i = 1; i <= 3; i++) {
    var i2 = i;
    (function() {
        var i3 = i;
        setTimeout(function() {
            value1 += i;
            value2 += i2;
            value3 += i3;
        }, 1);
    })();
}
setTimeout(function() {
    console.log(value1, value2, value3);
}, 100);

考察點:for循環(huán),作用域怎棱,閉包方淤,立即執(zhí)行函數(shù),setTimeout

解析:
for循環(huán)執(zhí)行完畢后蹄殃,i=4 ,i2=3
value1:0+4+4+4=12
value2:0+3+3+3=9
value3:0+1+2+3=6

3、寫出下面代碼的運行結(jié)果
function fun(n,o){
    console.log(o);
    return {
        fun:function(m){
            return fun(m,n);
        }
    }
}

var a=fun(0);
a.fun(1);
a.fun(2);
a.fun(3);
var b=fun(0).fun(1).fun(2).fun(3);
var c=fun(0).fun(1);
c.fun(2);
c.fun(3);

考察點:閉包你踩,作用對象
執(zhí)行var a=fun(0);诅岩,a的值為:

a={
     fun:function(m){
            return fun(m,0);
        }
}

所以a.fun(1)、a.fun(2)带膜、a.fun(3)的console.log值即是fun(1,0)吩谦、fun(2,0)、fun(3,0)的console.log值膝藕,均為0式廷。
那么c也是一個對象(和a差不多,只是參數(shù)值不一樣):

c={
     fun:function(m){
            return fun(m,1);
        }
}

那么c.fun(2)就輸出1了芭挽,c.fun(3)當(dāng)然也是1(第二個入?yún)⒏揪蜎]變呢)滑废,而c.fun(2)返回的新對象已經(jīng)變?yōu)椋?/p>

{
     fun:function(m){
            return fun(m,2);
        }
}

所以c.fun(2).fun(3)的輸出結(jié)果當(dāng)然為2啦。
所以最終輸出結(jié)果為:

undefined
0
0
0
undefined,0,1,2
undefined,0
1
1
4袜爪、原型和原型鏈

prototype:原型蠕趁,函數(shù)特有屬性,對象辛馆。面向?qū)ο蟮木幊谭绞桨陈脕韺崿F(xiàn)基于原型的繼承與屬性的共享。通過Function.prototype.bind方法構(gòu)造出來的函數(shù)是個例外昙篙,它沒有prototype屬性腊状。
[[prototype]]:對象內(nèi)部實現(xiàn)的屬性,指向構(gòu)造函數(shù)的原型(Object.create創(chuàng)建的例外)苔可,瀏覽器里表現(xiàn)為

__proto__

屬性(chrome和firefox已實現(xiàn))缴挖,原型鏈實現(xiàn)和查找必用屬性。

一張經(jīng)典的圖:
__proto__和prototype之間的關(guān)系

參考文章:
js中proto和prototype的區(qū)別和關(guān)系
## Js中Prototype硕蛹、proto醇疼、Constructor、Object法焰、Function關(guān)系介紹

延伸:使用new操作符的本質(zhì)是什么秧荆?

1)創(chuàng)建類的實例,這個實例是一個空對象并將它的__proto __屬性指向構(gòu)造函數(shù)的原型埃仪;
2)初始化實例乙濒,傳參、調(diào)用構(gòu)造函數(shù),設(shè)置this指向這個實例颁股;
3)返回實例

參考文章:## How Prototypal Inheritance really works

5么库、瀏覽器和內(nèi)核代表

1、Internet Explorer 甘有, 內(nèi)核 Trident 诉儒, 微軟開發(fā)的一種排版引擎
2、Firefox 亏掀,內(nèi)核Gecko忱反,以C++編寫的網(wǎng)頁排版引擎,開源
3滤愕、safari温算、Opera和chrome,內(nèi)核WebKit间影,渲染速度極快

6注竿、瀏覽器緩存

兩張圖:

瀏覽器第一次請求流程圖

瀏覽器再次請求時

參考文章:
瀏覽器 HTTP 協(xié)議緩存機制詳解

7、es6新特性

參考ES6新特性概覽

8魂贬、html5有哪些新特性?移除了那些元素巩割?如何處理HTML5新標(biāo)簽的瀏覽器兼容問題?HTML5 為什么只需要寫 !DOCTYPE HTML随橘?如何區(qū)分 HTML 和HTML5喂分?
1)新特性

繪畫 canvas;用于媒介回放的 video 和 audio 元素机蔗;本地離線存儲 localStorage 蒲祈、sessionStorage ;語義化更好的內(nèi)容元素萝嘁,比如 article梆掸、footer、header牙言、nav酸钦、section;表單控件咱枉,calendar卑硫、date、time蚕断、email欢伏、url、search亿乳;新的技術(shù)webworker, websocket, Geolocation

2)移除的元素

純表現(xiàn)的元素:basefont(默認(rèn)字體)硝拧,big(大字體)径筏,center(水平居中),font(字體標(biāo)簽)障陶,strike(中橫線)滋恬,tt(文本等寬),u(下劃線)抱究;
對可用性產(chǎn)生負(fù)面影響的元素:frameset(框架集)恢氯,frame,noframes(為那些不支持框架的瀏覽器顯示文本)鼓寺。

3)HTML5新標(biāo)簽的瀏覽器兼容問題

A酿雪、IE8/IE7/IE6支持通過document.createElement方法產(chǎn)生的標(biāo)簽,
可以利用這一特性讓這些瀏覽器支持HTML5新標(biāo)簽侄刽;瀏覽器支持新標(biāo)簽后,還需要添加標(biāo)簽?zāi)J(rèn)的樣式朋凉。
B州丹、最好的方式是直接使用成熟的框架:使用最多的是html5shim框架,必須在head標(biāo)簽中調(diào)用

<!--[if lt IE 9]> 
   <script> src="http://html5shim.googlecode.com/svn/trunk/html5.js"</script> 
   <![endif]--> 
4)HTML5 為什么只需要寫 !DOCTYPE HTML

而 HTML 5 不基于 SGML杂彭,因此不需要對 DTD 進(jìn)行引用墓毒,但是需要 doctype 來規(guī)范瀏覽器的行為。
HTML 4.01 中的 doctype 需要對 DTD 進(jìn)行引用亲怠,因為 HTML 4.01 基于 SGML所计。
其中,SGML是標(biāo)準(zhǔn)通用標(biāo)記語言,簡單的說团秽,就是比HTML,XML更老的標(biāo)準(zhǔn)主胧,這兩者都是由SGML發(fā)展而來的。

5)如何區(qū)分HTML 和HTML5

A习勤、看doctype聲明
B踪栋、看meta頭(h5<meta charset="UTF-8">,h4要很長一段)
C、是否用了h5新標(biāo)簽图毕、新特性

延伸:語義化HTML的好處?

參考:
HTML語義化
如何理解web語義化

9夷都、cookie、sessionStorage予颤、localStorage的作用和區(qū)別囤官?

同:都保存在客戶端,用以存儲數(shù)據(jù)蛤虐,同源
cookie:不超過4kb,發(fā)送http請求時攜帶党饮,可設(shè)置過期時間(默認(rèn)瀏覽器關(guān)閉后失效)
sessionStorage:5M或更大,存儲在客戶端笆焰,網(wǎng)頁關(guān)閉即失效(刷新不失效)劫谅,不發(fā)送給服務(wù)器
localStorage:5M或更大,存儲在客戶端,永久存儲捏检,不發(fā)送給服務(wù)器
如果超過最大限制荞驴,會報錯,Uncaught QuotaExceededError
web-storage測試工具

10贯城、css有哪些選擇器熊楼?優(yōu)先級?哪些屬性可繼承能犯?css3新增的偽類有哪些鲫骗?
1)選擇器

id >class> 標(biāo)簽> 相鄰> 子> 后代 >通配符(*) >屬性> 偽類
優(yōu)先級為: !important > id > class > tag ( important 比內(nèi)聯(lián)優(yōu)先級高)

2)可繼承屬性

font-size font-family color, UL LI DL DD DT;
不可繼承:border padding margin width height

3)CSS3新增偽類

前面已說,此處略

11踩晶、z-index的作用和使用條件

作用:設(shè)置元素的堆疊順序
使用條件:僅在定位元素上奏效( position:absolute|relative|fixed)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末执泰,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子渡蜻,更是在濱河造成了極大的恐慌术吝,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件茸苇,死亡現(xiàn)場離奇詭異排苍,居然都是意外死亡,警方通過查閱死者的電腦和手機学密,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進(jìn)店門淘衙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人腻暮,你說我怎么就攤上這事彤守。” “怎么了哭靖?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵遗增,是天一觀的道長。 經(jīng)常有香客問我款青,道長做修,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任抡草,我火速辦了婚禮饰及,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘康震。我一直安慰自己燎含,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布腿短。 她就那樣靜靜地躺著屏箍,像睡著了一般绘梦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赴魁,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天卸奉,我揣著相機與錄音,去河邊找鬼颖御。 笑死榄棵,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的潘拱。 我是一名探鬼主播疹鳄,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼芦岂!你這毒婦竟也來了瘪弓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤禽最,失蹤者是張志新(化名)和其女友劉穎杠茬,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弛随,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年宁赤,在試婚紗的時候發(fā)現(xiàn)自己被綠了舀透。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡决左,死狀恐怖愕够,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情佛猛,我是刑警寧澤惑芭,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站继找,受9級特大地震影響遂跟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜婴渡,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一幻锁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧边臼,春花似錦哄尔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽富拗。三九已至,卻和暖如春鸣戴,著一層夾襖步出監(jiān)牢的瞬間啃沪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工葵擎, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留谅阿,地道東北人。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓酬滤,卻偏偏與公主長得像签餐,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子盯串,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,047評論 2 355

推薦閱讀更多精彩內(nèi)容