【前端面试题】前端面试知识点(第三十一题到第六十一题)

三十一. 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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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中…