最近面試了 不少1-2年的前端,網上手機了一些 問題和答案,發出來 但願能幫助到你們~css
修改-webkit-font-smoothing屬性html
結果是:-webkit-font-smoothing: none: 無抗鋸齒-webkit-font-smoothing: antialiased | subpixel-antialiased | default: 灰度平滑
前端
咱們的作法是:vue
針對谷歌瀏覽器內核,加webkit前綴,用transform:scale()
這個屬性進行縮放! p span {font-size:10px;-webkit-transform:scale(0.8);display:block;}
node
CSS預處理器的原理: 是將類 CSS 語言經過 Webpack 編譯 轉成瀏覽器可讀的真正 CSS。jquery
在這層編譯之上,即可以賦予 CSS 更多更強大的功能,經常使用功能: 嵌套 變量 循環語句 條件語句 自動前綴 單位轉換 mixin複用webpack
概念性知識點: 在線壓縮js/csses6
www.haorooms.com/post/web_xn… 及 前端性能優化補充篇web
let array = [0, 3, 4, 5, 3, 4, 7, 8, 2, 2, 5, 4, 6, 7, 8, 0, 2, 0, 90];
[...new Set(array)]
複製代碼
[1, 3, 4, 5, 1, 2, 3, 3, 4, 8, 90, 3, 0, 5, 4, 0].filter(function (elem, index, Array) {
return index === Array.indexOf(elem);
})
複製代碼
[].forEach.call($$("*"), function (a) {
a.style.outline = "1px solid #" + (~~(Math.random() * (1 << 24))).toString(16)
})
複製代碼
運行上面代碼以後,會發現HTML層都被使用不一樣的顏色添加了一個高亮的邊框。爲何會這樣呢?面試
$$("*")
以數組的形式返回頁面全部元素.forEach 。這是一種簡寫,完整的寫法應該是這樣:Array.prototype.forEach.call(...);很顯然,簡寫更方便。
ajax隨機數、ajax參數、meta中設置等。. 能夠看下我寫的 js清除瀏覽器緩存的幾種方法
//不緩存
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="0">
複製代碼
1. 用ajax請求服務器最新文件,並加上請求頭If-Modified-Since和Cache-Control,以下:
beforeSend :function(xmlHttp){
xmlHttp.setRequestHeader("If-Modified-Since","0");
xmlHttp.setRequestHeader("Cache-Control","no-cache");
},
2. 直接用cache:false
3. 用隨機數,隨機數也是避免緩存的一種很不錯的方法!
URL 參數後加上 "?ran=" + Math.random(); //固然這裏參數 ran能夠任意取了
4. 用隨機時間,和隨機數同樣。
在 URL 參數後加上 "?timestamp=" + new Date().getTime();
複製代碼
Websocket 是一個 持久化的協議, 基於 http , 服務端能夠 主動 push
FLASH Socket 長輪詢: 定時發送 ajax long poll: 發送 --> 有消息時再 response
let ws = new WebSocket(url);
/* 收到消息回調 */
ws.onmessage = onMessage;
/* 鏈接斷開回調 */
ws.onclose = onClose;
/* 鏈接成功回調 */
ws.onopen = onOpen;
複製代碼
<script>
標籤不受跨域限制的特色,缺點是隻能支持 get 請求CORS: Access-Control-Allow-Origin:*
vue-router
如何作歷史返回提示?vue-router
如何作用戶登陸權限等?實際上就是應用了vue-router提供的router.beforeEach來註冊一個全局鉤子 官網導航守衛介紹
不少人都說不全,不知道是 不用仍是不看重. 這個帖子寫的很全
vue-router
模塊的 router-link
組件。vue-router
有哪幾種導航鉤子?三種:
使用步驟:
有哪幾大特性:
vue.js 是採用數據劫持 結合發佈者-訂閱者模式的方式,經過Object.defineProperty()
來劫持各個屬性的setter,getter,在數據變更時發佈消息給訂閱者,觸發相應的監聽回調。
總共分爲8個階段 建立前/後,載入前/後,更新前/後,銷燬前/後
建立前/後: 在beforeCreated
階段,vue實例的掛載元素 $el
和數據對象data
都爲undefined
,還未初始化。 在created
階段,vue實例的數據對象data有了,$el
尚未。
載入前/後: 在beforeMount階段,vue實例的$el和data都初始化了,但仍是掛載以前爲虛擬的dom節點,data.message還未替換。在mounted階段,vue實例掛載完成,data.message成功渲染。
更新前/後: 當data變化時,會觸發beforeUpdate和updated方法。
銷燬前/後: 在執行destroy方法後,對data的改變不會再觸發周期函數,說明此時vue實例已經解除了事件監聽以及和dom的綁定,可是dom結構依然存在
這個考察你對webpack的理解是使用程度。
例如可能考察以下知識點:
有get到幫助的,能夠 圈一下~ 謝謝!