news 2026/4/15 12:32:31

前端基础三剑客

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
前端基础三剑客

一、HTML:页面的骨架

核心作用:定义页面的结构和语义,告诉浏览器 “显示什么内容”。

  1. 基础语法
    • 标签:分为双标签(<div></div><p></p>)和单标签(<img/><input/>)。
    • 属性:标签的附加信息,如idclasssrchref
  2. 核心标签分类
    • 语义化标签:header(页头)、nav(导航)、main(主体)、article(文章)、footer(页脚),替代无意义的div
    • 文本标签:h1-h6(标题)、p(段落)、a(链接)、strong(加粗强调)。
    • 表单标签:form(表单容器)、input(输入框,type 含 text/radio/checkbox/submit)、select(下拉框)、textarea(多行文本)。
    • 多媒体标签:img(图片,必填srcalt)、audio(音频)、video(视频)。
  3. 关键知识点
    • 标签嵌套规则:块级标签可嵌套行内标签,行内标签不能嵌套块级标签。
    • 字符实体:&nbsp;(空格)、&lt;(小于号<)、&gt;(大于号>)。

二、CSS:页面的皮肤

核心作用:美化页面,控制元素的布局、颜色、大小等样式,告诉浏览器 “内容怎么显示”。

  1. 基础语法
    • 选择器 {属性:值;},例如div { color: red; }
  2. 核心选择器
    选择器类型示例作用
    标签选择器p { ... }选中所有对应标签元素
    类选择器.box { ... }选中所有 class 为 box 的元素(最常用)
    ID 选择器#header { ... }选中唯一 ID 为 header 的元素
    后代选择器.parent .child { ... }选中 parent 下的 child 元素
    伪类选择器a:hover { ... }选中元素的特殊状态(如鼠标悬浮)
  3. 核心布局与样式
    • 盒模型:每个元素是一个盒子,包含margin(外边距)、border(边框)、padding(内边距)、content(内容)。
    • 现代布局:Flex 布局(一维布局,适合行 / 列排列)、Grid 布局(二维布局,适合复杂网格)。
    • 定位:relative(相对自身定位)、absolute(相对最近定位父级)、fixed(相对视口固定)。
    • 响应式:@media媒体查询,根据屏幕宽度适配样式。
    • CSS3 特效:transition(过渡动画)、animation(自定义动画)、border-radius(圆角)、box-shadow(阴影)。
  4. 样式优先级
    • 内联样式 > ID 选择器 > 类选择器 > 标签选择器 > 继承样式。

三、JavaScript:页面的大脑

核心作用:实现页面的动态交互和逻辑,告诉浏览器 “内容如何动、如何响应用户操作”。

  1. 基础语法
    • 变量与数据类型:let/const声明变量,基本类型(string/number/boolean/null/undefined)、引用类型(object/array/function)。
    • 流程控制:if-elseswitchfor/while循环。
    • 函数:函数声明 / 表达式、箭头函数、参数、返回值、作用域(全局 / 局部)、闭包。
  2. DOM 操作(核心)
    • 查找元素:document.getElementById()document.getElementsByClassName()document.querySelector()
    • 增删改元素:createElement()appendChild()removeChild()innerHTML
    • 事件绑定:onclick行内绑定、addEventListener()动态绑定、事件委托。
  3. 异步编程(重点)
    • 回调函数:解决异步问题,但易产生回调地狱。
    • Promise:三种状态(pending/fulfilled/rejected),then/catch处理结果。
    • async/await:基于 Promise 的语法糖,使异步代码同步化。
  4. BOM 操作
    • window对象:alert()setTimeout()setInterval()
    • location对象:获取 / 修改 URL,location.href跳转页面。
    • history对象:back()/forward()控制页面历史记录。

八股

一、HTML 篇

  1. 什么是 HTML 语义化?有什么好处?
    • 定义:用具有特定含义的标签(如header/nav/article)替代无意义的div,清晰描述内容结构。
    • 好处:提升代码可读性;利于 SEO(搜索引擎抓取);方便无障碍阅读(如屏幕阅读器)。
  2. HTML5 新增了哪些特性?
    • 语义化标签:header/nav/main/article/footer/section
    • 多媒体标签:audio/video(无需插件直接播放音视频)。
    • 表单新特性:新增type类型(email/tel/number/date)、placeholder/required/autofocus属性。
    • 其他:本地存储(localStorage/sessionStorage)、Canvas 绘图、WebSocket 通信。
  3. srchref的区别?
    • src替换当前元素,会暂停其他资源加载,直到该资源加载完成(如img/script标签)。
    • href建立关联,不会阻塞页面渲染(如a/link标签)。
  4. HTML 中常用的 meta 标签有哪些?
    • 字符编码:<meta charset="UTF-8">
    • 视口适配(移动端):<meta name="viewport" content="width=device-width, initial-scale=1.0">
    • SEO 相关:<meta name="keywords" content="关键词"><meta name="description" content="页面描述">

二、CSS 篇

  1. CSS 选择器优先级顺序?
    • 优先级从高到低:内联样式style="") >ID 选择器#id) >类选择器 / 伪类 / 属性选择器.class/:hover/[type]) >标签选择器 / 伪元素div/::after) >通配符*) >继承样式
    • 特殊:!important会覆盖所有样式(慎用,会破坏样式层级)。
  2. CSS 盒模型的两种标准及区别?
    • W3C 标准盒模型(默认):width/height = 内容区域(content)borderpadding会撑开盒子。
    • IE 怪异盒模型width/height = content + padding + border,不会撑开盒子。
    • 切换方式:box-sizing: content-box(标准)/border-box(怪异,开发常用)。
  3. Flex 布局的核心属性(容器 + 项目)?
    • 容器属性
      • display: flex:开启 Flex 布局。
      • justify-content:主轴方向对齐方式(flex-start/center/space-between/space-around)。
      • align-items:交叉轴方向对齐方式(flex-start/center/stretch)。
      • flex-direction:主轴方向(row水平 /column垂直)。
    • 项目属性
      • flex: 1:等价于flex-grow:1; flex-shrink:1; flex-basis:0%(项目占满剩余空间)。
      • align-self:单个项目交叉轴对齐方式(覆盖容器align-items)。
  4. BFC 是什么?如何触发?有什么作用?
    • 定义:块格式化上下文(Block Formatting Context),是一个独立的渲染区域,内部元素布局不受外部影响。
    • 触发条件(满足其一即可):
      • 根元素(html)。
      • float不为none
      • overflowhidden/auto/scroll
      • displayflex/grid/inline-block
      • positionabsolute/fixed
    • 作用:清除浮动、防止 margin 重叠、实现两栏自适应布局。
  5. 响应式设计的实现方案?
    • 媒体查询:@media (max-width: 768px) { ... }(根据屏幕宽度适配样式)。
    • 弹性单位:rem(基于根元素字体大小)、vw/vh(基于视口宽高)。
    • Flex/Grid 布局:天然支持弹性适配。
  6. position的几个取值及区别?
    • static:默认值,正常文档流,不受top/left影响。
    • relative:相对定位,相对于自身原位置偏移,不脱离文档流
    • absolute:绝对定位,相对于最近的定位父级偏移,脱离文档流
    • fixed:固定定位,相对于视口偏移,脱离文档流(如回到顶部按钮)。
    • sticky:粘性定位,在top阈值内相对定位,超出后固定定位。

三、JavaScript 篇

(一)基础语法

  1. let/const/var的区别?
    特性varletconst
    作用域函数作用域 / 全局作用域块级作用域块级作用域
    变量提升存在(可先使用后声明)存在(暂时性死区)存在(暂时性死区)
    重复声明允许不允许不允许
    初始值可省略可省略必须赋值
    重新赋值允许允许不允许(指向的引用不可变)
  2. 数据类型及判断方法?
    • 基本类型:string/number/boolean/null/undefined/symbol/bigint
    • 引用类型:object(包含array/function/date等)。
    • 判断方法:
      • typeof:区分基本类型(但typeof null === 'object'是坑)。
      • instanceof:判断引用类型的具体构造函数(如[] instanceof Array)。
      • Object.prototype.toString.call():万能方法(如Object.prototype.toString.call(null) === '[object Null]')。
  3. 什么是闭包?闭包的作用及缺点?
    • 定义:函数嵌套函数,内层函数可以访问外层函数的变量,即使外层函数执行完毕。
    • 作用:延长变量生命周期创建私有变量(避免全局污染)。
    • 缺点:变量不会被垃圾回收机制回收,容易导致内存泄漏(解决:及时手动释放变量)。

(二)DOM/BOM 操作

  1. DOM 节点的增删改查方法?
    • 查:document.getElementById()document.getElementsByClassName()document.querySelector()(返回单个)、document.querySelectorAll()(返回集合)。
    • 增:document.createElement()(创建节点)、parent.appendChild(child)(添加节点)。
    • 删:parent.removeChild(child)element.remove()
    • 改:element.innerHTML(替换内容,有 XSS 风险)、element.textContent(纯文本,安全)。
  2. 事件委托的原理及优势?
    • 原理:利用事件冒泡,将子元素的事件绑定到父元素上,通过event.target判断触发事件的子元素。
    • 优势:减少事件绑定次数,提升性能;支持动态新增的子元素(无需重新绑定事件)。
    • 示例:给ul绑定点击事件,处理所有li的点击逻辑。

(三)异步编程

  1. JavaScript 为什么是单线程?异步的实现原理?
    • 单线程原因:避免 DOM 渲染冲突(如果同时操作 DOM 会导致混乱)。
    • 异步原理:基于事件循环(Event Loop),分为同步任务和异步任务:
      • 同步任务:在主线程执行栈中依次执行。
      • 异步任务:分为宏任务(setTimeout/setInterval/ajax)和微任务(Promise.then/async/await/MutationObserver),异步任务完成后进入任务队列,等待主线程空闲后执行。
    • 执行顺序:同步任务 → 微任务 → 宏任务。
  2. Promise 的三种状态及常用方法?
    • 三种状态:pending(进行中)→fulfilled(成功)/rejected(失败)(状态一旦改变不可逆转)。
    • 常用方法:
      • 实例方法:then()(成功回调)、catch()(失败回调)、finally()(无论成功失败都会执行)。
      • 静态方法:Promise.all()(所有 Promise 成功才返回,一个失败则整体失败)、Promise.race()(第一个完成的 Promise 决定结果)。
  3. async/await和 Promise 的关系?优点?
    • 关系:async/awaitPromise 的语法糖,底层还是基于 Promise 实现。
    • 优点:将异步代码写成同步代码的形式,可读性更高,解决了 Promise 的 “回调地狱” 问题。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/7 10:42:34

娱乐-虚拟偶像:实时渲染引擎性能测试

虚拟偶像产业与实时渲染引擎的崛起 随着数字娱乐产业的爆发式增长&#xff0c;虚拟偶像&#xff08;如初音未来、洛天依&#xff09;已成为全球现象。这些虚拟角色依赖实时渲染引擎&#xff08;如Unity或Unreal Engine&#xff09;在直播、演唱会等场景中实现高保真交互。然而…

作者头像 李华
网站建设 2026/4/14 13:44:42

‌机器人餐厅送餐路径规划算法测试实践指南

背景与测试重要性 在智能住宿餐饮领域&#xff0c;机器人餐厅的送餐路径规划算法是核心驱动力&#xff0c;直接影响效率和用户体验。作为软件测试从业者&#xff0c;测试该算法需结合功能、性能和安全维度&#xff0c;确保机器人在复杂环境&#xff08;如餐厅过道、人流密集区…

作者头像 李华
网站建设 2026/4/13 7:56:25

数论难题挑战:用VibeThinker尝试破解哥德巴赫猜想简化版

用VibeThinker挑战数论难题&#xff1a;一次轻量模型的高阶推理实践 在编程竞赛圈里&#xff0c;一个流传已久的段子是&#xff1a;“能手推哥德巴赫猜想的人&#xff0c;早就去拿菲尔兹奖了。”这句玩笑背后&#xff0c;其实藏着人们对数学深度与逻辑严密性的敬畏。然而&#…

作者头像 李华
网站建设 2026/4/8 18:14:19

VibeThinker-1.5B代码生成实测:结构化逻辑拆解能力媲美中型模型

VibeThinker-1.5B代码生成实测&#xff1a;结构化逻辑拆解能力媲美中型模型 在算法竞赛的深夜训练营里&#xff0c;一个学生盯着“Two Sum”变种题苦思良久——输入数组有序、要求常数空间、不能使用哈希表。他尝试了几种双指针写法都未能通过所有测试用例。如果这时有个助手能…

作者头像 李华
网站建设 2026/4/7 19:18:58

Magistral Medium被超越?VibeThinker-1.5B在v6测试中反超

VibeThinker-1.5B&#xff1a;小模型如何在推理赛道反超大模型&#xff1f; 在AIME数学竞赛题上得分80.3&#xff0c;超越参数量超400倍的DeepSeek-R1&#xff1b;在LiveCodeBench v6编程基准测试中拿下51.1分&#xff0c;首次超过Magistral Medium&#xff08;50.3&#xff09…

作者头像 李华
网站建设 2026/4/11 12:31:46

图解说明工业控制PCB布线规则设计典型结构

工业控制PCB布线实战&#xff1a;从噪声隔离到信号完整性的系统设计 在工业自动化现场&#xff0c;一台PLC模块突然频繁重启&#xff1b;一个温度采集系统读数漂移严重&#xff0c;误差超出允许范围&#xff1b;一条CAN总线通信时断时续&#xff0c;却查不出明显故障点——这些…

作者头像 李华