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

来源:https://www.cnblogs.com/star-wind/archive/2020/02/24/12353230.html
-Advertisement-
Play Games

參考 博客 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是務必最需要重視的一塊

總結

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

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、需求介紹 前端是一個列表頁面,列表可以進行覆選框的選擇,後臺進行關聯表數據的刪除。 二、框架介紹 springboot+mybatis 資料庫用的postgresql 三、具體代碼(前端js) 1、前端涉及到的代碼 //判斷選中狀態var ids ="";$(".checkbox").each( ...
  • 按照國際慣例先放效果圖 安靜的時候它長這樣 等待載入時它長這樣(功能是設置的按需載入,網速慢或者載入數據大時會出現) 載入之後購物車沒有商品時這樣 有商品長這樣 首頁index.html <!DOCTYPE html> <html lang="zh-CN"><!-- 設置簡體中文 --> <head ...
  • 容易混淆,決定做下筆記!!! splice() 方法向/從數組中添加/刪除項目,然後返回被刪除的項目。 語法 arrayObject.splice(index,howmany,item1,.....,itemX) 返回值 提示和註釋 註釋:請註意,splice() 方法與 slice() 方法的作用 ...
  • 1,vertical-align屬性的作用? 設置元素垂直對齊的方式; 2,該屬性使用過程的註意點: 與text-align屬性不同,text-align屬性是設置給需要對齊元素的父元素的, 而vertical-align屬性是設置給需要對其元素本身的; 3,該屬性的取值有哪些? 3.1,top ( ...
  • 前言 我們知道Vue框架劇本雙向數據綁定功能,在我們使用方便的同時,還有一些細節問題我們並不知道,接下來一起探討一些吧 雙向數據綁定 js變數改變影響頁面 頁面改變影響js變數 Vue2是如何做到數據綁定的 以上需要說的就是: Vue中data函數返回的對象,會經過層層遍歷,最後將所有的對象通過以上 ...
  • <router-view> 是基本的動態組件,所以我們可以用 <transition> 組件給它添加一些過渡效果: <transition name="slide-left" mode="out-in"> <router-view /> </transition> 過渡的類名 在進入/離開的過渡中, ...
  • 在CSS中,根據元素顯示模式的不同元素標簽被分為了兩類:行內元素(inline-level)、塊級元素(block-level)。 1,首先介紹什麼是行內元素,什麼又是塊級元素? 1.1,行內元素就是不會獨占一行的元素,例如:span buis strong em ins del等 1.2,塊級元素 ...
  • 一、CSS偽元素 CSS 偽元素用於向某些選擇器設置特殊效果。 偽元素的用法如下: selector:pseudo-element {property:value;} CSS 類也可以和偽元素搭配使用 selector.class:pseudo-element {property:value;} 二 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...