成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

撩課-Web大前端每天5道面試題-Day1

番茄西紅柿 / 2427人閱讀

摘要:的變量提升的底層原理是什么引擎的工作方式是先解析代碼,獲取所有被聲明的變量然后在運行。引用計數(shù)這種方式常常會引起內(nèi)存泄漏,低版本的使用這種方式。

1. var的變量提升的底層原理是什么?

JS引擎的工作方式是:
1) 先解析代碼,獲取所有被聲明的變量;
2)然后在運行。也就是說分為預處理和執(zhí)行兩個階段。
變量提升:所有變量的聲明語句都會被提升到代碼頭部。
但是變量提升只對var命令聲明的變量有效,如果一個變量不是用var命令聲明的,就不會發(fā)生變量提升。

2. JS如何計算瀏覽器的渲染時間?

 

撩課小編:  瀏覽器的渲染過程主要包括以下幾步:
1) 解析HTML生成DOM樹。
2) 解析CSS生成CSSOM規(guī)則樹。
3) 將DOM樹與CSSOM規(guī)則樹合并在一起生成渲染樹。
4) 遍歷渲染樹開始布局,計算每個節(jié)點的位置大小信息。
5) 將渲染樹每個節(jié)點繪制到屏幕。
優(yōu)化考慮:
CSS 優(yōu)先:引入順序上,CSS 資源先于 JavaScript 資源。
JS置后:通常把JS代碼放到頁面底部,且JavaScript 應(yīng)盡量少影響 DOM 的構(gòu)建。

 

 

 

3. JS的回收機制?

撩課小編: 垃圾回收機制是為了以防內(nèi)存泄漏,(內(nèi)存泄漏: 當已經(jīng)不需要某塊內(nèi)存時這塊內(nèi)存還存在著),  垃圾回收機制就是間歇的不定期的尋找到不再使用的變量,并釋放掉它們所指向的內(nèi)存。

JS有兩種變量: 全局變量和在函數(shù)中產(chǎn)生的局部變量。局部變量的生命周期在函數(shù)執(zhí)行過后就結(jié)束了,此時便可將它引用的內(nèi)存釋放(即垃圾回收),但全局變量生命周期會持續(xù)到瀏覽器關(guān)閉頁面。

JS執(zhí)行環(huán)境中的垃圾回收器有兩種方式:標記清除(mark and sweep)、引用計數(shù)(reference counting)。

標記清除:  垃圾收集器給內(nèi)存中的所有變量都加上標記,然后去掉環(huán)境中的變量以及被環(huán)境中的變量引用的變量的標記。
在此之后再被加上的標記的變量即為需要回收的變量,因為環(huán)境中的變量已經(jīng)無法訪問到這些變量。

引用計數(shù)(reference counting):  這種方式常常會引起內(nèi)存泄漏,低版本的IE使用這種方式。
機制就是跟蹤一個值的引用次數(shù),當聲明一個變量并將一個引用類型賦值給該變量時該值引用次數(shù)加1,
當這個變量指向其他一個時該值的引用次數(shù)便減一。
當該值引用次數(shù)為0時就會被回收。

 


4. 垂直水平居中的方式?

撩課小編: 
方式一:  定位
父元素設(shè)置為:position: relative; 
子元素設(shè)置為:position: absolute; 
距上50%,據(jù)左50%,然后減去元素自身寬度的距離就可以實現(xiàn) 

width: 100px;
height: 100px;
position: absolute;
left: 50%;
top: 50%;
margin: -50px 0 0 -50px;

方式二:  flex布局

display: flex; //flex布局
justify-content: center; //使子項目水平居中
align-items: center; //使子項目垂直居中

方式三:  table-cell  (不推薦)

display: table-cell;
vertical-align: middle;//使子元素垂直居中
text-align: center;//使子元素水平居中

  

5. 實現(xiàn)一個三欄布局,中間版塊自適應(yīng)方法有哪些?

撩課小編:  浮動和定位
浮動方式:

<div class="content">
   <div class="left">leftdiv>
   <div class="right">rightdiv>
   <div class="center">centerdiv>
div>

.left{
    float: left;
    width: 100px;
    height: 200px; 
}

.right{
    float: right;
    padding: 0;
    width: 100px;
    height: 200px;
}

.center{
    margin: 0 100px 0 200px;
}


方式二:  將父容器的position設(shè)置為relative,兩個邊欄的position設(shè)置成absolute。

 

 

 

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/1508.html

相關(guān)文章

  • 前端最強面經(jīng)匯總

    摘要:獲取的對象范圍方法獲取的是最終應(yīng)用在元素上的所有屬性對象即使沒有代碼,也會把默認的祖宗八代都顯示出來而只能獲取元素屬性中的樣式。因此對于一個光禿禿的元素,方法返回對象中屬性值如果有就是據(jù)我測試不同環(huán)境結(jié)果可能有差異而就是。 花了很長時間整理的前端面試資源,喜歡請大家不要吝嗇star~ 別只收藏,點個贊,點個star再走哈~ 持續(xù)更新中……,可以關(guān)注下github 項目地址 https:...

    wangjuntytl 評論0 收藏0
  • 我的春招求職經(jīng)驗分享(已拿阿里京東網(wǎng)易等 5 個 offer)

    摘要:面經(jīng)因為我完全沒有面試經(jīng)驗,從來沒有經(jīng)歷過面試,于是想著在去這類大公司面試之前先找成都的小公司練練手,積累點面試經(jīng)驗。于是三月份開始就有成都的小公司開始約我面試。 前序 從我高考成績出來那一刻開始,從我在高考志愿上填上計算機科學與技術(shù)這幾個當時在心中堪稱神圣的幾個字開始,我就已經(jīng)把進入中國互聯(lián)網(wǎng)最高殿堂BAT作為我整個大學奮斗的目標,哪怕我就讀的是一所位于內(nèi)陸的雙非一本大學我也認為我能...

    Winer 評論0 收藏1
  • LeetCode 攻略 - 2019 年 8 月上半月匯總(109 攻略)

    摘要:每天會折騰一道及以上題目,并將其解題思路記錄成文章,發(fā)布到和微信公眾號上。三匯總返回目錄在月日月日這半個月中,做了匯總了數(shù)組知識點?;蛘呃奖疚淖钕旅妫砑拥奈⑿诺葧鶕?jù)題解以及留言內(nèi)容,進行補充,并添加上提供題解的小伙伴的昵稱和地址。 LeetCode 匯總 - 2019/08/15 Create by jsliang on 2019-08-12 19:39:34 Recently...

    tracy 評論0 收藏0
  • 每天10Java面試,跟我走,offer有!

    摘要:虛擬機在執(zhí)行字節(jié)碼時,把字節(jié)碼解釋成具體平臺上的機器指令執(zhí)行??傮w來說就是,我們利用調(diào)用開發(fā)了屬于我們自己的程序后,通過中的編譯程序?qū)⑽覀兊奈谋疚募幾g成字節(jié)碼,在上運行這些字節(jié)碼,解析這些字節(jié)碼,映射到指令集或的系統(tǒng)調(diào)用。 1.簡述JDK、JRE、JVM? 一、JDK JDK(Java Development Kit) 是整個JAVA的核心, 包括了Java運行環(huán)境(Java Ru...

    zsy888 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<