[TOC]
# 2019/01/02
#### 1.**let/const/var的區別**
* var:聲明全局變量,換句話理解就是,聲明在for循環中的變量,跳出for循環同樣可以使用。
~~~
for(var i=0;i<=1000;i++){ var sum=0; sum+=i; } alert(sum);
~~~
聲明在for循環內部的sum,跳出for循環一樣可以使用,不會報錯正常彈出結果
* let:聲明塊級變量,即局部變量。 在上面的例子中,跳出for循環,再使用sum變量就會報錯
注意:必須聲明'use strict'后才能使用let聲明變量否則瀏覽并不能顯示結果
* const:用于聲明常量,也具有塊級作用域 const PI=3.14;
#### 2.**url到展示頁面發生了什么**
1. DNS解析
2. 建立TCP連接(3次握手)
3. 發送HTTP請求,從服務器下載相關內容
4. 瀏覽器構建DOM樹和CSS樹,然后生成渲染樹。這個一個漸進式過程,引擎會力求最快將內容呈現給用戶。
5. 在第四步的過程中,`<script>`的位置和加載方式會影響響應速度。
6. 搞定了,關閉TCP連接(4次握手)
#### 3.**用CSS怎么做出一個三角形**
~~~
把上、左、右三條邊隱藏掉(顏色設為 transparent)
#demo {
width: 0;
height: 0;
border-width: 20px;
border-style: solid;
border-color: transparent transparent red transparent;
}
~~~
#### 4.**document.wirte和innerHTML的區別**
主要區別:
* document.write是直接將內容寫入頁面的內容流,會導致頁面全部重繪
* innerHTML將內容寫入某個DOM節點,不會導致頁面全部重繪
#### 5.**柵格系統的原理**
實現原理:
1. 把網頁總寬度平分為12分,開發人員可以自由按分組合,以便開發出簡潔方便的程序
2. 僅僅通過定義容器大小、平分12分,再調整內外邊距,最后結合媒體查詢,就制作出強大的響應式柵格系統
3. 柵格系統用于通過一系列的行(row)與列(column)的組合來創建頁面布局,你的內容就可以放入這些創建好的布局中。
工作原理:
1. “行(row)”必須包含在 .container (固定寬度)或 .container-fluid (100% 寬度)中,以便為其賦予合適的排列(aligment)和內補(padding)。
2. 通過“行(row)”在水平方向創建一組“列(column)”。
3. 你的內容應當放置于“列(column)”內,并且,只有“列(column)”可以作為行(row)”的直接子元素。
4. 類似 .row 和 .col-xs-4 這種預定義的類,可以用來快速創建柵格布局。Bootstrap 源碼中定義的 mixin 也可以用來創建語義化的布局。
5. 通過為“列(column)”設置 padding 屬性,從而創建列與列之間的間隔(gutter)。通過為 .row 元素設置負值 margin 從而抵消掉為 .container 元素設置的 padding,也就間接為“行(row)”所包含的“列(column)”抵消掉了padding。
6. 負值的 margin就是下面的示例為什么是向外突出的原因。在柵格列中的內容排成一行。
7. 柵格系統中的列是通過指定1到12的值來表示其跨越的范圍。例如,三個等寬的列可以使用三個 .col-xs-4 來創建。
8. 如果一“行(row)”中包含了的“列(column)”大于 12,多余的“列(column)”所在的元素將被作為一個整體另起一行排列。
#### 6.**position的值relative和absolute的定位原點是?**
* absolute:生成絕對定位的元素,定位原點是離自己這一級元素最近的一級position設置為absolute或者relative的父元素的左上角為原點的。
* relative:生成相對定位的元素,定位原點是元素本身所在位置。
**拓展:**
* fixed (老IE不支持):生成絕對定位的元素,相對于瀏覽器窗口進行定位。
* static:默認值。沒有定位,元素出現在正常的流中(忽略 top, bottom, left, right z-index 聲明)。
* inherit:規定從父元素繼承 position 屬性的值。
已連接
1個文件被修改
面試日志記錄.md
- 雜(一般誤入)
- Vue
- CSS
- Web前端性能優化有哪些方法
- 后端
- 嘻嘻哈哈
- 一
- 二
- 三
- 大雜燴
- 什么是HTML,什么是CSS,什么JavaScript?
- JS動畫與CSS動畫的差異
- HTML,CSS
- 1.px、em、rem、vw、rpx之間的區別
- 2.為什么要初始化CSS樣式
- 3.CSS優先級算法如何計算?
- 4. ::before 和 :after中雙冒號和單冒號有什么區別?
- 5.display:inline-block 什么時候會顯示間隙?
- 6.行內元素有哪些?塊級元素有哪些?如何將行內元素表現為塊級元素?
- 7.css新增了哪些功能?
- 8.對html5語義化的理解
- 9.http頭的expires是表示什么
- 10.bootstrap柵格系統實現原理
- 11.清除浮動的方法
- 12.使用image間隙留白問題
- 13.html分為哪些層?都代表什么?
- 14.對于web中W3C標準的理解?
- 15.用css寫一個三角形?
- 16.CSS中使用表格怎么合并行,合并列
- 17.處理margin-top的bug問題
- 18.動畫進度條
- 19.box-sizing的屬性值
- 20.box-shadow的參數
- 21.a標簽的四個狀態及它們的順序、設置title屬性的效果
- 22.如何實現垂直水平居中
- 23.什么是雪碧圖
- 24.h1和title、b和strong、i和em的區別
- 25.table和div+css的區別
- 26.錨點的作用是什么?如何創建錨點
- 27.margin距離問題
- 28.響應式的導航欄
- 29.進度條
- 30.img標簽的title屬性和alt屬性有什么區別
- 31.媒體查詢
- 32.CSS選擇器有哪些?哪些屬性可以繼承?
- Javascript
- 1.面向對象的基本特征
- 2.在JavaScript中實現繼承的方法
- 2.用js去除字符串空格
- 3.你怎么理解作用域?
- 4.get和post的請求?
- 5.如何理解閉包?
- 6.數組的克隆(深拷貝)的方法
- 7.es6新增了哪些特性
- 8.json對象與字符串轉換
- 9.回調函數
- 10.HTML和XHML的共同點
- 11.js中把7.25轉換成一個整數
- 12.循環遍歷的方法
- 13.深拷貝與淺拷貝的區別
- 14.JavaScript有哪些方法定義對象
- 15.AJAX請求總共有多少種CALLBACK
- 16.js中的定時器
- 17.let、var、const的區別
- 18.==和===的區別
- 19.dom文檔(自上往下)加載的順序
- 20.string變成int型
- 21.如何判斷是否為一個質數
- 22.typeof返回類型,以及比較typeof與instanceof
- 23.判斷一個對象是否為數組以及數組的方法
- 24.解釋一下原型和原型鏈、hasOwnProperty
- 25.js有哪些內置對象
- 26.new一個對象發生了什么
- 27.sass的理解
- 28.document.onLoad與window.ready的區別
- 29.什么是跨域?跨域請求資源的方法有哪些?
- 30.Ajax的優缺點及工作原理
- 31.什么是正則
- 32.貪婪模式與非貪婪(懶惰)模式
- 33.數組去重
- 34.js字符串操作函數
- 35.substring和substr傳參的區別
- 36.如何實現一個原生的ajax,分成幾步
- 37.如何實現一個事件綁定
- 38.事件冒泡與事件捕獲的區別
- 39.事件監聽
- 40.字符串下標與字符串某一個字符之間的轉換
- 41.new操作符的作用
- 42.函數的定義方式
- 43.括號在JavaScipt中的作用
- 44.回調地獄
- 45.document.write和innerHTML的區別
- 46.解釋一下JS同源策略
- 47.說幾種DOM節點
- 48.DOM事件流
- 49.同步與異步
- 50.json和jsonp的區別
- 51.字符串去重
- 52.JS中的數據類型
- 53.this關鍵字指向問題
- 54.break和contiune之間的區別
- 55.如何消除事件冒泡與事件默認行為
- 56.請列舉jquery中的選擇器
- 瀏覽器及服務端
- 1.請說出三種減低頁面加載時間的方法
- 2.瀏覽器的緩存機制
- 3.瀏覽器的內核
- 4.瀏覽器的兼容問題
- 5.src和href的區別
- 6.高質量代碼具備哪些條件
- 7.HTTP請求與響應
- 8.談談對前端模塊化的理解
- 9.嚴格模式與混雜模式如何區分?
- 10.重繪和重排的區別
- 11.MVC和MVVM的區別
- 12.前端頁面如何解決適配的問題
- 13.寫一個400錯誤
- 14.狀態碼
- 15.開發及性能優化
- 16.靜態網頁與動態網頁的區別
- 17.如何調試網頁代碼?如何查看網頁源代碼
- 18.語義化的主要目的是什么?
- 19.如何讓所有的瀏覽器支持ES6語法
- 20.cookie,LocalStorage,sessionStorage的區別
- 計算題
- 1.margin距離問題
- 2.math
- 3.使用js實現階乘(1~10)
- 4.求一個數組的最大數
- 5.判斷一個字符串中出現次數最多的字符,統計這個次數
- 6.質數
- 7.如何把一個字符串倒過來輸出
- 取數據,渲染數據
- 1.ajax版本
- 2.vue版本
- 3.React版本
- 4.用class封裝一個ajax
- 5.用回調函數封裝一個ajax
- Vue,React
- 1.什么是路由?
- 2.vuex的工作流程
- 3.redux的工作流程
- 微信小程序
- 1.程序的生命周期
- 2.組件的生命周期
- 3.微信小程序頁面的生命周期
- 不會的問題
- 2019/01/02
- 2019/01/03
- 2019/01/07
- 2019/01/21
- 1