主頁 > 前端設計 > 3年多前端菜雞的面試及知識梳理(一)

3年多前端菜雞的面試及知識梳理(一)

2020-09-12 14:35:10 前端設計

參考

博客

  • 1、中高級前端面試題(萬字長文)
  • 2、大前端吊打面試官系列

資料

  • 1、HTML 5 教程
  • 2、CSS3 教程
  • 3、JavaScript 教程

收費小冊
前端面試之道
注:某大佬這本收費小冊干貨很多,有些參考其中的問題,就不列答案了,

寫在前面的話

因為一些特殊原因在家待了很久,博客和github都很久沒有更新了,
這段時間,代碼寫的比較少,但是看了不少書,
因為博主不是科班出身,在家的幾個月把科班的一些書籍都學習了一遍,比如《資料結構》,《計算機組成》,《計算機網路》,《作業系統》,下次有機會,可以把看一些書籍和前端的一些結合來講,
現在主要是待業在家,準備出去找作業,因為疫情原因,先對當前的知識做個整理,
這些整理,只針對于自身的一些問題,
也有自己覺得一些重要,以及一些感悟的地方,

針對自己的查漏補缺

一、html部分

常見行內元素標簽:a、br、code、em、img、input...
常見塊級元素標簽:div、p、dl、dt、form、h1~h6...

新特性

  • 用于繪畫的 canvas 元素
  • 用于媒介回放的 video 和 audio 元素
  • 對本地離線存盤的更好的支持
  • 新的特殊內容元素,比如 article、footer、header、nav、section
  • 新的表單控制元件,比如 calendar、date、time、email、url、search

知識欠缺點

  • HTML 5 拖放
  • HTML 5 Canvas
  • TML5 行內 SVG
  • HTML 5 應用程式快取
  • HTML 5 Web Workers
  • HTML 5 服務器發送事件

自己認為重要的一些部分

  • HTML5 Input 型別
  • HTML5 表單元素
  • HTML5 表單屬性

1、HTML5 表單屬性,這個感覺很重要

新的 form 屬性:

- autocomplete
- novalidate

新的 form 屬性:

- autocomplete
- autofocus
- form
- form overrides (formaction, formenctype, formmethod, formnovalidate, formtarget)
- height 和 width
- list
- min, max 和 step
- multiple
- pattern (regexp)
- placeholder
- required

HTML 事件屬性(重要)
想了想,這部分還單獨列出來好了,因為在日常開發中,使用到的概率也比較高

屬性 描述
onafterprint script 檔案列印之后運行的腳本,
onbeforeprint script 檔案列印之前運行的腳本,
onbeforeunload script 檔案卸載之前運行的腳本,
onerror script 在錯誤發生時運行的腳本,
onload(很常用) script 頁面結束加載之后觸發,
onmessage script 在訊息被觸發時運行的腳本
onpagehide(很常用) script 當視窗隱藏時運行的腳本,
onpageshow(很常用) script 當視窗成為可見時運行的腳本,
onresize script 當瀏覽器視窗被調整大小時觸發,
onstorage script 在 Web Storage 區域更新后運行的腳本,
onunload script 一旦頁面已下載時觸發(或者瀏覽器視窗已被關閉),

Form 事件(重要)

屬性 描述
onblur (很常用) script 元素失去焦點時運行的腳本,
onchange(很常用) script 在元素值被改變時運行的腳本,
oncontextmenu script 當背景關系選單被觸發時運行的腳本,
onfocus(很常用) script 當元素獲得焦點時運行的腳本,
onformchange script 在表單改變時運行的腳本,
onforminput script 當表單獲得用戶輸入時運行的腳本
oninput(很常用) script 當元素獲得用戶輸入時運行的腳本,
oninvalid(很常用) script 當元素無效時運行的腳本
onselect script 在元素中文本被選中后觸發,
onsubmit(很常用) script 在提交表單時觸發,

此外還有

  • Keyboard 事件
  • Mouse 事件(這塊也用的比較多,篇幅原因就不展開列舉了,可以自行查看些html5的教程)
  • Media 事件

還有一個比較重要的部分就是video/audio的事件的屬性使用了
HTML 5 視頻/音頻參考手冊,
使用原生寫的時候,做類似的h5活動頁,就很有必要參考這塊了,

小結:
隨著幾大框架的使用,html5中很多屬性的直接應用會變的越來越少,被各種封裝,之前公司做的活動頁
也大都是用vue或者react框架下去制作,然后掛在一個路由下面,
可能在傳統公司的使用還是很多,像一些互聯網公司面試,問這方面的面試題都很少了,
撐死了就隨便問些新特性啊,行塊元素啊,媒體,快取之類的,

二、css部分

1、盒模型(這個面試10次會問到8次)

box-sizing: content-box(默認)----指的是標準模型(本身內容寬高度+邊框和內邊距)

box-sizing: border-sizing-----指的是IE模型(本身內容的寬高度)

2、flex布局(記得有次面試平安的時候,問的很細,也比較重要)

具體參考Flex布局教程:語法篇

3、css選擇器
因為比較基礎,好像問的比較少了,最早的時候還是會問些后代選擇器和子選擇器之類的,

4、display的值(這個經常問!!!)

5、清浮動(*)

6、posiiton的值:(和display一樣,也經常問,這樣基礎的應該都要掌握)

7、CSS3新特性

  • 過渡
  • 影片
  • 形狀轉換
  • 選擇器
  • 陰影
  • 文字陰影: text-shadow: 2px 2px 2px #000;(水平陰影,垂直陰影,模糊距離,陰影顏色)
  • 盒子陰影: box-shadow: 10px 10px 5px #999
  • 邊框
  • 背景
  • 文字
  • 漸變
  • 彈性布局、柵格布局、多列布局
  • 媒體查詢

8、Sass、Less、Stylus區別
感覺這個問題的即使回答不完全,好像也不是很重要,只要用過其中一種預處理預言,面試官都覺不會在這個問題上糾結太久

9、字體
之所以單獨列出來,是因為我們很多圖示都開始采用字體的形式,例如阿里字體,

注:自身欠缺的知識點

  • 影片(太多的業務代碼,導致對影片效果的要求不斷的降低)
  • 陰影
  • 漸變
  • 背景(背景用的好的話,真的會有妙用,可惜自身掌握的也不太好,)
小結:
css一直都重要,特別是布局排版,還有一些兼容部分,
不管哪次面試,css都是必不可少的環節
熟練掌味訓本的css,在日常的開發會少很多坑
比如還有什么1像素的問題之類的,都是要在不斷的采坑中,慢慢成長的,
隨著css3特性的不斷強大,能夠代替js做不少影片,好好使用,也會有不錯的效果,
面試之前,應該也要好好把整個css部分,再過一遍

三、js部分

1、js基本資料型別(面試問的概率超高,應該算是基礎吧)

undefined、number、string、null、boolean+object ES6新增Symbol

2、var、let、const 三者的區別什么?

var 存在變數提升,而 let、const 則不會,
var 的全域宣告的變數會掛載到 window 上,而其他兩者不會,
let 和 const 的作用基本一致,后者宣告的變數不能再次賦值

注:有面試官會問你const的宣告物件常量,能不能更改物件中的值,建議自己去實作下,,,

2、原生ajax(以前問的很多,現在框架增多,很多都是請求庫,這個反而問的不怎么多了)

如何創建Ajax
XMLHttpRequest物件的作業流程
==========兼容性寫法===========
var xmlHttp = null;
if(window.XMLHttpRequset) {
    // IE7+,Firefox,Chrome,Safari,Opera
    xmlHttp = new XMLHttpRequset();
}
else {
    // IE5,IE6
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")
}
兼容性處理
事件的觸發條件
xmlHttp.onreadystatechange = function() {
    if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {
        responseText、responseXML
    }
}
事件的觸發順序
======================注意=================
如果是POST請求則需要添加頭
xmlHttp.setRequestHeader("Content-type": "application/x-www-form-urlencoded")

3、深拷貝,淺拷貝(很常見)

4、Promise的理解和實作(如果現場要求手寫一個promise比較難,我也只能說說思路,這點也比較欠缺誒

5、繞不開的閉包問題(問的概率一半一半)

6、原型鏈

7、map, filter, reduce的作用和區別

8、微任務和宏任務(有次面試網易的時候,有問到,這塊要掌握好了,對Event Loop的了解會有很大的識訓)

小結:
js這部分向來都是問的最多的這塊,隨著es6的普及,很多次面試都會問es6的東西了,當然es5本身也是
需要掌握的更加扎實,
而且后續的使用vue,react等框架,也離不開js的支撐,所以js是務必最需要重視的一塊

下一篇博文的地址:3年多前端菜雞的面試及知識梳理(二)

總結

對html部分和css的部分掌握的還算良好,js卻很長時間,因為業務代碼的關系,后期一直沒有得到良好
的發展,也沒有形成自己的知識體系,
因為篇幅有限,這期就先寫這么多,后續的話,應該是更新
工程化,HTTP,vue,react,幾個框架,
再往后,也有可能對小程式呀,app之類的,對自身的情況做個總結,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/14758.html

標籤:HTML5

上一篇:WebSocket以及socketIO的使用

下一篇:Vue.js 從原始碼理解v-for和v-if的優先級的高低

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • vue移動端上拉加載

    可能做得過于簡單或者比較low,請各位大佬留情,一起探討技術 ......

    uj5u.com 2020-09-10 04:38:07 more
  • 優美網站首頁,頂部多層導航

    一個個人用的瀏覽器首頁,可以把一下常用的網站放在這里,平常打開會比較方便。 第一步,HTML代碼 <script src=https://www.cnblogs.com/szharf/p/"js/jquery-3.4.1.min.js"></script> <div id="navigate"> <ul> <li class="labels labels_1"> ......

    uj5u.com 2020-09-10 04:38:47 more
  • 頁面為要加<!DOCTYPE html>

    最近因為寫一個js函式,需要用到$(window).height(); 由于手寫demo的時候,過于自信,其實對前端方面的認識也不夠體系,用文本檔案直接敲出來的html代碼,第一行沒有加上<!DOCTYPE html> 導致了$(window).height();的結果直接是整個document的高 ......

    uj5u.com 2020-09-10 04:38:52 more
  • WordPress網站程式手動升級要做好資料備份

    WordPress博客網站程式在進行升級前,必須要做好網站資料的備份,這個問題良家佐言是遇見過的;在剛開始接觸WordPress博客程式的時候,因為升級問題和博客網站的修改的一些嘗試,良家佐言是吃盡了苦頭。因為購買的是西部數碼的空間和域名,每當佐言把自己的WordPress博客網站搞到一塌糊涂的時候 ......

    uj5u.com 2020-09-10 04:39:30 more
  • WordPress程式不能升級為5.4.2版本的原因

    WordPress是一款個人博客系統,受到英文博客愛好者和中文博客愛好者的追捧,并逐步演化成一款內容管理系統軟體;它是使用PHP語言和MySQL資料庫開發的,用戶可以在支持PHP和MySQL資料庫的服務器上使用自己的博客。每一次WordPress程式的更新,就會牽動無數WordPress愛好者的心, ......

    uj5u.com 2020-09-10 04:39:49 more
  • 使用CSS3的偽元素進行首字母下沉和首行改變樣式

    網頁中常見的一種效果,首字改變樣式或者首行改變樣式,效果如下圖。 代碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ......

    uj5u.com 2020-09-10 04:40:09 more
  • 關于a標簽的講解

    什么是a標簽? <a> 標簽定義超鏈接,用于從一個頁面鏈接到另一個頁面。 <a> 元素最重要的屬性是 href 屬性,它指定鏈接的目標。 a標簽的語法格式:<a href=https://www.cnblogs.com/summerxbc/p/"指定要跳轉的目標界面的鏈接">需要展示給用戶看見的內容</a> a標簽 在所有瀏覽器中,鏈接的默認外觀如下: 未被訪問的鏈接帶 ......

    uj5u.com 2020-09-10 04:40:11 more
  • 前端輪播圖

    在需要輪播的頁面是引入swiper.min.js和swiper.min.css swiper.min.js地址: 鏈接:https://pan.baidu.com/s/15Uh516YHa4CV3X-RyjEIWw 提取碼:4aks swiper.min.css地址 鏈接:https://pan.b ......

    uj5u.com 2020-09-10 04:40:13 more
  • 如何設定html中的背景圖片(全屏顯示,且不拉伸)

    1 <style>2 body{background-image:url(https://uploadbeta.com/api/pictures/random/?key=BingEverydayWallpaperPicture); 3 background-size:cover;background ......

    uj5u.com 2020-09-10 04:40:16 more
  • Java學習——HTML詳解(上)

    HTML詳解 初識HTML Hyper Text Markup Language(超文本標記語言) 1 <!--DOCTYPE:告訴瀏覽器我們要使用什么規范--> 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <!--meta 描述性的標簽,描述一些 ......

    uj5u.com 2020-09-10 04:40:33 more
最新发布
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 07:59:23 more
  • 生產事故-走近科學之消失的JWT

    入職多年,面對生產環境,盡管都是小心翼翼,慎之又慎,還是難免捅出簍子。輕則滿頭大汗,面紅耳赤。重則系統停擺,損失資金。每一個生產事故的背后,都是寶貴的經驗和教訓,都是專案成員的血淚史。為了更好地防范和遏制今后的各類事故,特開此專題,長期更新和記錄大大小小的各類事故。有些是親身經歷,有些是經人耳傳口授 ......

    uj5u.com 2023-04-18 07:55:04 more
  • 記錄--Canvas實作打飛字游戲

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 打開游戲界面,看到一個畫面簡潔、卻又富有挑戰性的游戲。螢屏上,有一個白色的矩形框,里面不斷下落著各種單詞,而我需要迅速地輸入這些單詞。如果我輸入的單詞與螢屏上的單詞匹配,那么我就可以獲得得分;如果我輸入的單詞錯誤或者時間過長,那么我就會輸 ......

    uj5u.com 2023-04-04 08:35:30 more
  • 了解 HTTP 看這一篇就夠

    在學習網路之前,了解它的歷史能夠幫助我們明白為何它會發展為如今這個樣子,引發探究網路的興趣。下面的這張圖片就展示了“互聯網”誕生至今的發展歷程。 ......

    uj5u.com 2023-03-16 11:00:15 more
  • 藍牙-低功耗中心設備

    //11.開啟藍牙配接器 openBluetoothAdapter //21.開始搜索藍牙設備 startBluetoothDevicesDiscovery //31.開啟監聽搜索藍牙設備 onBluetoothDeviceFound //30.停止監聽搜索藍牙設備 offBluetoothDevi ......

    uj5u.com 2023-03-15 09:06:45 more
  • canvas畫板(滑鼠和觸摸)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>canves</title> <style> #canvas { cursor:url(../images/pen.png),crosshair; } #canvasdiv{ bo ......

    uj5u.com 2023-02-15 08:56:31 more
  • 手機端H5 實作自定義拍照界面

    手機端 H5 實作自定義拍照界面也可以使用 MediaDevices API 和 <video> 標簽來實作,和在桌面端做法基本一致。 首先,使用 MediaDevices.getUserMedia() 方法獲取攝像頭媒體流,并將其傳遞給 <video> 標簽進行渲染。 接著,使用 HTML 的 < ......

    uj5u.com 2023-01-12 07:58:22 more
  • 記錄--短視頻滑動播放在 H5 下的實作

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 短視頻已經無數不在了,但是主體還是使用 app 來承載的。本文講述 H5 如何實作 app 的視頻滑動體驗。 無聲勝有聲,一圖頂百辯,且看下圖: 網址鏈接(需在微信或者手Q中瀏覽) 從上圖可以看到,我們主要實作的功能也是本文要講解的有: ......

    uj5u.com 2023-01-04 07:29:05 more
  • 一文讀懂 HTTP/1 HTTP/2 HTTP/3

    從 1989 年萬維網(www)誕生,HTTP(HyperText Transfer Protocol)經歷了眾多版本迭代,WebSocket 也在期間萌芽。1991 年 HTTP0.9 被發明。1996 年出現了 HTTP1.0。2015 年 HTTP2 正式發布。2020 年 HTTP3 或能正... ......

    uj5u.com 2022-12-24 06:56:02 more
  • 【HTML基礎篇002】HTML之form表單超詳解

    ??一、form表單是什么

    ??二、form表單的屬性

    ??三、input中的各種Type屬性值

    ??四、標簽 ......

    uj5u.com 2022-12-18 07:17:06 more