摘要:的變量提升的底層原理是什么引擎的工作方式是先解析代碼,獲取所有被聲明的變量然后在運行。引用計數這種方式常常會引起內存泄漏,低版本的使用這種方式。
1. var的變量提升的底層原理是什么?
JS引擎的工作方式是: 1) 先解析代碼,獲取所有被聲明的變量; 2)然后在運行。也就是說分為預處理和執行兩個階段。 變量提升:所有變量的聲明語句都會被提升到代碼頭部。 但是變量提升只對var命令聲明的變量有效,如果一個變量不是用var命令聲明的,就不會發生變量提升。
2. JS如何計算瀏覽器的渲染時間?
撩課小編: 瀏覽器的渲染過程主要包括以下幾步:
1) 解析HTML生成DOM樹。
2) 解析CSS生成CSSOM規則樹。
3) 將DOM樹與CSSOM規則樹合并在一起生成渲染樹。
4) 遍歷渲染樹開始布局,計算每個節點的位置大小信息。
5) 將渲染樹每個節點繪制到屏幕。
優化考慮:
CSS 優先:引入順序上,CSS 資源先于 JavaScript 資源。
JS置后:通常把JS代碼放到頁面底部,且JavaScript 應盡量少影響 DOM 的構建。
3. JS的回收機制?
撩課小編: 垃圾回收機制是為了以防內存泄漏,(內存泄漏: 當已經不需要某塊內存時這塊內存還存在著), 垃圾回收機制就是間歇的不定期的尋找到不再使用的變量,并釋放掉它們所指向的內存。
JS有兩種變量: 全局變量和在函數中產生的局部變量。局部變量的生命周期在函數執行過后就結束了,此時便可將它引用的內存釋放(即垃圾回收),但全局變量生命周期會持續到瀏覽器關閉頁面。
JS執行環境中的垃圾回收器有兩種方式:標記清除(mark and sweep)、引用計數(reference counting)。
標記清除: 垃圾收集器給內存中的所有變量都加上標記,然后去掉環境中的變量以及被環境中的變量引用的變量的標記。
在此之后再被加上的標記的變量即為需要回收的變量,因為環境中的變量已經無法訪問到這些變量。
引用計數(reference counting): 這種方式常常會引起內存泄漏,低版本的IE使用這種方式。
機制就是跟蹤一個值的引用次數,當聲明一個變量并將一個引用類型賦值給該變量時該值引用次數加1,
當這個變量指向其他一個時該值的引用次數便減一。
當該值引用次數為0時就會被回收。
4. 垂直水平居中的方式?
撩課小編: 方式一: 定位 父元素設置為:position: relative; 子元素設置為:position: absolute; 距上50%,據左50%,然后減去元素自身寬度的距離就可以實現 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. 實現一個三欄布局,中間版塊自適應方法有哪些?
撩課小編: 浮動和定位 浮動方式: <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設置為relative,兩個邊欄的position設置成absolute。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/1508.html
摘要:獲取的對象范圍方法獲取的是最終應用在元素上的所有屬性對象即使沒有代碼,也會把默認的祖宗八代都顯示出來而只能獲取元素屬性中的樣式。因此對于一個光禿禿的元素,方法返回對象中屬性值如果有就是據我測試不同環境結果可能有差異而就是。 花了很長時間整理的前端面試資源,喜歡請大家不要吝嗇star~ 別只收藏,點個贊,點個star再走哈~ 持續更新中……,可以關注下github 項目地址 https:...
摘要:面經因為我完全沒有面試經驗,從來沒有經歷過面試,于是想著在去這類大公司面試之前先找成都的小公司練練手,積累點面試經驗。于是三月份開始就有成都的小公司開始約我面試。 前序 從我高考成績出來那一刻開始,從我在高考志愿上填上計算機科學與技術這幾個當時在心中堪稱神圣的幾個字開始,我就已經把進入中國互聯網最高殿堂BAT作為我整個大學奮斗的目標,哪怕我就讀的是一所位于內陸的雙非一本大學我也認為我能...
摘要:每天會折騰一道及以上題目,并將其解題思路記錄成文章,發布到和微信公眾號上。三匯總返回目錄在月日月日這半個月中,做了匯總了數組知識點。或者拉到本文最下面,添加的微信等會根據題解以及留言內容,進行補充,并添加上提供題解的小伙伴的昵稱和地址。 LeetCode 匯總 - 2019/08/15 Create by jsliang on 2019-08-12 19:39:34 Recently...
摘要:虛擬機在執行字節碼時,把字節碼解釋成具體平臺上的機器指令執行。總體來說就是,我們利用調用開發了屬于我們自己的程序后,通過中的編譯程序將我們的文本文件編譯成字節碼,在上運行這些字節碼,解析這些字節碼,映射到指令集或的系統調用。 1.簡述JDK、JRE、JVM? 一、JDK JDK(Java Development Kit) 是整個JAVA的核心, 包括了Java運行環境(Java Ru...
閱讀 724·2023-04-25 19:43
閱讀 3921·2021-11-30 14:52
閱讀 3794·2021-11-30 14:52
閱讀 3859·2021-11-29 11:00
閱讀 3790·2021-11-29 11:00
閱讀 3882·2021-11-29 11:00
閱讀 3562·2021-11-29 11:00
閱讀 6138·2021-11-29 11:00