【前端面試題】前端面試知識點(第三十一題到第六十一題)

三十一. CSS實現垂直水平居中

實現元素的垂直水平居中是前端開發中的常見需求,主要有以下幾種思路:

  1. text-align + line-height實現單行文本水平垂直居中

    • 適用于單行文本元素,通過text-align: center實現水平居中,line-height等于容器高度實現垂直居中
  2. text-align + vertical-align

    • 結合父元素的text-align: center和子元素的vertical-align: middle實現居中效果
  3. margin: 0 auto

    • 主要用于實現水平居中,配合其他方法可實現垂直居中
  4. flex布局

    • 父元素設置display: flex; justify-content: center; align-items: center,簡單高效
  5. position定位

    • 父元素相對定位,子元素絕對定位,結合top: 50%; left: 50%; transform: translate(-50%, -50%)

三十二. SCSS/LESS與普通CSS的區別

Sass和Less都是CSS預處理器,旨在增強CSS的功能和可維護性,它們與普通CSS的主要區別如下:

  1. 功能增強:提供變量、嵌套、混合、繼承等特性,使CSS編寫更高效
  2. 編譯環境
    • Sass最初需要Ruby環境,現在也有其他編譯方式,屬于服務端處理
    • Less可通過Less.js在瀏覽器端處理,也可在服務端編譯
  3. 語法差異
    • 變量符號不同:Sass使用$,Less使用@
    • Sass支持更復雜的邏輯控制,如條件語句、循環等
  4. 文件后綴:Sass文件通常為.scss.sass,Less文件為.less
  5. 輸出方式:都需要編譯成普通CSS才能被瀏覽器識別

三十三. CSS選擇器類型

  1. 標簽選擇器:通過HTML標簽名選擇元素,如p { color: red; }

  2. 類選擇器:通過元素的class屬性選擇,如.active { background: blue; }

  3. ID選擇器:通過元素的id屬性選擇,如#header { height: 100px; }

  4. 包含選擇器:選擇特定父元素下的子元素,如div p { margin: 10px; }

  5. 通配選擇器:匹配所有元素,如* { box-sizing: border-box; }

  6. 分組選擇器:同時選擇多個選擇器,如h1, h2, h3 { font-weight: normal; }

  7. 屬性選擇器:根據元素屬性選擇,如input[type="text"] { width: 200px; }

  8. 偽類選擇器:選擇元素的特定狀態,如a:hover { color: green; }

  9. 偽元素選擇器:選擇元素的特定部分,如p::first-letter { font-size: 2em; }

  10. 相鄰兄弟選擇器:選擇緊鄰的兄弟元素,如div + p { margin-top: 20px; }

三十四. 同步和異步的區別

  • 同步

    • 代碼按照順序執行,前一個任務完成后才能執行后一個任務
    • 執行過程中會阻塞后續操作
    • 適用于簡單的、執行時間短的操作
  • 異步

    • 任務執行不阻塞后續代碼的運行
    • 當異步任務完成后,通過回調函數等方式通知并處理結果
    • 執行順序不確定,由任務完成時間決定
    • 適用于耗時操作,如網絡請求、文件讀寫等

三十五. Promise使用方式

Promise是處理異步操作的一種方案,用于解決回調地獄問題:

// 創建Promise對象
const promise = new Promise((resolve, reject) => {// 執行異步操作setTimeout(() => {try {// 操作成功resolve("操作成功的結果");} catch (error) {// 操作失敗reject("操作失敗的原因");}}, 1000);
});// 使用Promise
promise.then(result => {console.log("成功:", result);return "繼續傳遞";}).then(data => {console.log("鏈式調用:", data);}).catch(error => {console.log("失敗:", error);}).finally(() => {console.log("無論成功失敗都會執行");});

三十六. 類數組轉換為標準數組

類數組對象(如arguments、DOM集合)具有數組的length屬性和索引,但沒有數組的方法,轉換為標準數組的方法:

  1. Array.prototype.slice.call()

    const arrayLike = { 0: 'a', 1: 'b', length: 2 };
    const arr = Array.prototype.slice.call(arrayLike);
    
  2. Array.from()(ES6)

    const arr = Array.from(arrayLike);
    
  3. 擴展運算符(ES6)

    const arr = [...arrayLike];
    

三十七. 事件種類

  1. 鼠標事件:click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout等

  2. 鍵盤事件:keydown, keyup, keypress

  3. 表單事件:submit, reset, change, input, focus, blur

  4. 文檔/窗口事件:load, unload, resize, scroll, DOMContentLoaded

  5. 觸摸事件:touchstart, touchmove, touchend(移動設備)

  6. 拖放事件:drag, dragstart, dragend, dragover, drop

  7. 進度事件:loadstart, progress, load, abort, error, loadend

三十八. jQuery選擇器

  1. ID選擇器$("#myId") - 選擇id為myId的元素

  2. 類選擇器:$(“.myClass”) - 選擇所有class為myClass的元素

  3. 元素選擇器:$(“div”) - 選擇所有div元素

  4. 屬性選擇器:$(“input[type=‘text’]”) - 選擇所有type為text的input元素

  5. 后代選擇器:$(“ul li”) - 選擇ul下的所有li元素

  6. 子元素選擇器:$(“ul > li”) - 選擇ul的直接子元素li

  7. 相鄰兄弟選擇器:$(“div + p”) - 選擇div后面緊鄰的p元素

  8. 通配選擇器:$(“*”) - 選擇所有元素

三十九. 框架中的路由理解

路由是前端框架中實現單頁應用(SPA)頁面跳轉的核心機制,主要作用是建立URL與組件之間的映射關系。

  • 基本概念

    • 通過不同的URL路徑,展示不同的組件內容
    • 無需刷新頁面,通過JavaScript動態切換組件
    • 保持頁面狀態,提升用戶體驗
  • Vue Router

    • 配置路由映射關系:路徑 -> 組件
    • 使用<router-link>實現導航,<router-view>展示組件
    • 支持嵌套路由、動態路由、路由守衛等功能
  • React Router

    • 基于組件的路由實現
    • 使用<Route>定義路由規則,<Link>實現導航
    • 支持聲明式和編程式導航
  • 核心作用

    • 實現無刷新頁面切換
    • 提供瀏覽器歷史記錄管理
    • 支持路由參數傳遞
    • 實現權限控制和導航守衛

四十. 實現對象淺拷貝

淺拷貝是指只復制對象的第一層屬性,對于嵌套對象只復制引用:

  1. Object.assign()

    const obj = { a: 1, b: { c: 2 } };
    const copy = Object.assign({}, obj);
    
  2. 擴展運算符

    const copy = {

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/95854.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/95854.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/95854.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

嵌入式練習項目——————抓包獲取天氣信息

一、內容 嘗試通過實時天氣接口 - 數據接口 - NowAPI此網站獲取天氣信息&#xff0c;實現可以發送城市查詢當前天氣和未來天氣 二、獲取請求報文 可以根據測試示例看到獲取內容&#xff0c;此時數據是cJSON格式&#xff0c;我們首先要通過合適的網址抓包獲取到請求報文&#x…

Python爬蟲實戰:研究NewsCrawl ,構建新浪和網易新聞數據采集系統

1. 引言 1.1 研究背景與意義 在信息時代,新聞作為社會動態、公眾觀點的重要載體,其傳播速度與影響力持續擴大。傳統的人工篩選與采集方式已無法滿足對海量新聞數據的高效處理需求,亟需自動化工具實現大規模、結構化的新聞數據采集。網絡爬蟲技術作為一種按照預設規則自動抓…

PyTorch神經網絡工具箱全解析:nn.Module vs nn.functional

&#x1f50d; 為何需要神經網絡工具箱&#xff1f; 在僅用 Autograd 和 Tensor 實現模型時&#xff0c;開發者需手動設置參數梯度&#xff08;requires_gradTrue&#xff09;、反向傳播&#xff08;backward()&#xff09;及梯度提取&#xff0c;過程繁瑣且易出錯。nn 工具箱應…

Java注解學習記錄

目錄 一、為什么要學注解&#xff1f; 二、注解是什么&#xff1f; 三、為什么要使用注解&#xff1f; 四、注解的作用 五、注解的分類 5.1 元注解 Retention&#xff08;/ r??ten?(?)n /&#xff09; ★★★★★ Target ★★★★★ Inherited(/ ?n?her?t?d /…

43.安卓逆向2-補環境-使用unidbg(使用Smali語法調用方法和使用方法地址調用方法)

免責聲明&#xff1a;內容僅供學習參考&#xff0c;請合法利用知識&#xff0c;禁止進行違法犯罪活動&#xff01; 內容參考于&#xff1a;圖靈Python學院 工具下載&#xff1a; 鏈接&#xff1a;https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwdzy89 提取碼&#xff1…

【Kubernetes知識點問答題】Pod 調度

1. 如何將特定 Pod 調度到指定的節點&#xff1f;可以使用下列方法中的任何一種來選擇 K8s 對特定 Pod 的調度&#xff1a;① 與節點標簽匹配的 nodeSelector&#xff1a;在 Pod 的規范中使用 nodeSelector 字段來指定節點標簽&#xff0c;以便將 Pod 調度到具有特定標簽的節點…

wordpress顯示時間日期的幾種常見的方式

在WordPress中&#xff0c;顯示時間日期有多種常見方式&#xff0c;包括使用默認設置、模板標簽、插件等&#xff0c;以下是詳細介紹&#xff1a; 使用默認設置 WordPress的默認設置允許你在文章列表中顯示文章的發布時間。登錄到WordPress后臺&#xff0c;在“設置”中找到“…

基于飛算JavaAI實現布隆過濾器防止緩存穿透:原理、實踐與全流程解析

引言&#xff1a;當緩存失效時&#xff0c;系統如何避免“雪崩式崩潰”&#xff1f; 在互聯網高并發場景中&#xff08;如電商秒殺、社交平臺熱點新聞&#xff09;&#xff0c;緩存是提升系統性能的核心手段——將頻繁訪問的數據&#xff08;如商品詳情、用戶信息&#xff09;存…

DeepResearch開源與閉源方案對比

在這個AI不再只是聊天工具的時代&#xff0c;"深度研究"已經成為大語言模型&#xff08;LLM&#xff09;的一項新能力。先進的LLM不再只是給出快速的一次性回答&#xff0c;而是可以像研究助手一樣工作——搜索網上信息&#xff0c;調用各種工具&#xff08;比如搜索…

UniApp 頁面傳參方式詳解

在 UniApp 開發中&#xff0c;頁面間參數傳遞是核心功能之一。以下是 8 種常用的傳參方式&#xff0c;每種方式都有其適用場景和特點&#xff1a;一、URL 拼接傳參&#xff08;最常用&#xff09; 適用場景&#xff1a;簡單數據傳遞&#xff0c;如 ID、狀態值等基礎類型數據 實…

音頻分類標注工具

pyqt 分類標注工具&#xff1a;import glob import sys import json import os from PyQt5.QtWidgets import (QApplication, QMainWindow, QTableWidget, QTableWidgetItem,QSplitter, QVBoxLayout, QWidget, QPushButton, QRadioButton,QButtonGroup, QLabel, QHBoxLayout, Q…

云計算-Kubernetes+Istio 實現金絲雀發布:流量管理、熔斷、流量鏡像、ingreess、污點及pv案例實戰

介紹 在微服務架構中,如何安全、高效地實現服務發布與流量管理是保障業務穩定性的核心挑戰。金絲雀發布(Canary Release)、灰度發布等策略通過精細化的流量控制,可有效降低新版本上線風險, Istio 作為主流的服務網格(Service Mesh)工具。 此次Istio 在 Kubernetes 集群…

12.web api 3

定時器-間歇函數

ComfyUI進階:EchoMimic插件全解析,讓靜態肖像實現音頻驅動的精準口型動畫

在數字內容創作中&#xff0c;讓靜態肖像“開口說話”并做出自然表情&#xff0c;是提升交互感與沉浸感的關鍵。傳統動畫制作需專業人員逐幀調整口型與表情&#xff0c;成本高且效率低。ComfyUI的EchoMimic插件通過音頻驅動技術&#xff0c;實現了“輸入音頻→自動生成匹配口型…

鏈式前向星、vector存圖

場景設定 想象你是一個社交達人&#xff0c;要記錄你和所有朋友的關系&#xff08;這就是“圖”&#xff09;。每個朋友是一個節點&#xff0c;關系是一條邊。你需要快速回答&#xff1a;“我有哪些朋友&#xff1f;”&#xff08;遍歷鄰居&#xff09;。方式1&#xff1a;鏈式…

YAML 中定義 List 的幾種方式

在 YAML 配置文件中定義 List 并在 Spring 應用中注入是非常常見的操作&#xff0c;下面詳細介紹具體寫法和注入方式。一、YAML 中定義 List 的幾種方式1. 縮進式寫法&#xff08;推薦&#xff09;最常用的方式&#xff0c;通過短橫線 - 加空格表示列表項&#xff1a;yaml# app…

C# 反射和特性(自定義特性)

自定義特性 你或許已經注意到了&#xff0c;應用特性的語法和之前見過的其他語法有很大不同。你可能會覺得特 性是一種完全不同的結構類型&#xff0c;其實不是&#xff0c;特性只是一種特殊的類。 有關特性類的一些要點如下。 用戶自定義的特性類叫作自定義特性。所有特性類都…

科目二的四個電路

一.K21電動機單連續運轉接線(帶點動控制)1.電路圖2.主線路這可很明了,是一條直線,從上接到下就OK了,然后從熱繼電器出來,接到SB3按鈕的常閉觸點上接著往下走一端接到SB2的常閉觸點上,接著往下走&#xff0c;走到接觸器的線圈上,從L2借一條火線出來,從熔斷器的上端接入,另一端接…

【位運算】查詢子數組最大異或值|2693

本文涉及知識點 位運算、狀態壓縮、枚舉子集匯總 3277. 查詢子數組最大異或值 給你一個由 n 個整數組成的數組 nums&#xff0c;以及一個大小為 q 的二維整數數組 queries&#xff0c;其中 queries[i] [li, ri]。 對于每一個查詢&#xff0c;你需要找出 nums[li…ri] 中任…

HTML DOM 方法

HTML DOM 方法 引言 HTML DOM&#xff08;文檔對象模型&#xff09;是HTML文檔的編程接口&#xff0c;它允許開發者通過JavaScript來操作HTML文檔中的元素。DOM 方法是DOM編程的核心&#xff0c;它提供了豐富的操作手段來改變網頁的結構、樣式和行為。本文將詳細介紹HTML DOM中…