原创 promise講解

promise 簡介 Promise是ES6加入標準的一種異步編程解決方案,通常用來表示一個異步操作的最終完成 (或失敗)。Promise標準的提出,解決了JavaScript地獄回調的問題。 語法 var p = new P

原创 vue實現多個下拉去重

我們先來看一個圖: 可以看到,在添加下拉之後,之前選過的選項不會出現在下拉里面了。 線上地址:線上地址 整個實現過程是用vue實現的,總體來說蠻簡單,如果用jQuery實現就會複雜得多。 下面我們來看看vue-devtool裏面

原创 electron打包你的h5應用成桌面應用

electron是什麼? 官網解釋爲:使用 JavaScript,HTML 和 CSS 構建跨平臺的桌面應用程序。可以看出,這個東西是爲了讓我們用html,javaScript,css開發的web應用和h5應用打包成一個桌面應用,

原创 vue的keep-alive講解

功能簡介 keep-alive是vue2.0加入的一個特性, 能緩存某個組件,或者某個路由。緩存的好處: 節省性能消耗,避免一個組件頻繁重新渲染,節省開支 保存用戶狀態,比如說:我們在填寫收貨地址的頁面,需要跳轉到另一個頁面通過

原创 一文看懂websocket

我們先看一下下面這張圖: 可以看到這是一個簡易的聊天室,兩個窗口的消息是實時發送與接收的,這個主要就是用我們今天要講的websocket實現的。 websocket是什麼? websocket是一種網絡通信協議,我們都知道htt

原创 websocket實現一個聊天室

上次講了websoket的基礎知識和應用插件,今天我們來用websocket來實現一個聊天程序。先看幾張界面截圖: 聊天界面: 歷史消息查看: 用戶上線提醒: 在線體驗地址:地址 功能結構圖 可以看到,該聊天室主要分爲三個

原创 px/em/rem的關係與區別

1px有多大? 我們先了解幾個概念: 關鍵概念 設備像素:設備屏幕實際擁有的像素點一般來說:寬度方向有1920個像素點,長度方向有1080個像素點。 邏輯像素:CSS 的像素單位(就是我們這次要討論的css的px),其尺寸大小是

原创 bind、call、apply的區別與用法?

我們在看一些插件的時候,經常會用到這 3 個函數,那麼他們具體的用途是什麼呢?區別又是什麼呢?我們先看看下面一段代碼: var name = '小白' var obj = { name: '小明', getName: func

原创 js中如何準確的判斷一個變量的類型?

這是一個高頻面試題,我們開發中也進程會遇到,今天我們來實現一個函數getValType(val),用來獲取一個變量的類型。從1. JS基礎變量類型。2. Js中判斷變量的函數。 3. 實現getValType函數。3個方面來分析實

原创 知道html5 Web Worker標準嗎?能實現JavaScript的多線程?

js爲什麼是單線程? 主要是因爲最開始javascript是單純的服務於瀏覽器的一種腳步語言(那時候沒有nodejs)。瀏覽器是爲了渲染網頁,通過dom與用戶交互,如果一個線程需要給dom執行click事件,而另一個進程要刪除這個

原创 你知道css的盒模型嗎?

CSS盒子模型與怪異盒模型 盒子模型(Box Modle)可以用來對元素進行佈局,包括內邊距(padding),邊框(border),外邊距(margin),和實際內容(content)這幾個部分。 標準盒模型 標準盒模型中盒

原创 你知道雪碧圖嗎?有哪些優缺點?

這道題實際上考的是前端性能優化的一個點。 雪碧圖的英文是CSS Sprites。 其目的是將多張比較小的圖片,合併到一張大的圖片上面,大的圖片背景透明,使用的時候,通過把該張圖片當做背景圖片,通過不同的 background-po

原创 你知道css3的focus-within選擇器嗎?

僞元素和僞類 說到這個,我們先回顧一下,僞類選擇器和僞元素選擇器,老版的瀏覽器沒有嚴格區分下面 2 種寫法。 a:after{} a::after{} 在新的標準中,單冒號(:)用於 CSS3 僞類,雙冒號(::)用於 CSS

原创 一個vue全家桶搭建的SPA應用框架

前段時間vue3推出了bata版本,但是離正式版還有段時間,今天給搭建提供一個由# vue-cli4 + vue2.6 + vuex + vue-router + axios + element-ui搭建的框架,讓大家能快速開發,

原创 知道nodejs嗎?和web端js區別和共性?

知道nodejs嗎?和web端js區別和共性? 這題考察的是面試者對nodejs的瞭解和對js標準的瞭解。 共同點 都尊選ECMAScript語法標準,最新版本是ECMAScript 8(ES2017) 該語法包含了變量定義、