当前位置:首页 > 技术 > 正文内容

前端开发实用代码片段与核心概念解析

访客 技术 2026年9月28日 14

JavaScript 是大小写敏感的语言,关键字(如 function、return、const)必须严格按规范书写,否则将导致语法错误或运行异常。

<textarea> 是原生 HTML 表单控件,支持用户自由输入多行文本,并可通过 CSS 调整尺寸与行为,比普通 <div> 更具语义性与可访问性。

AJAX(Asynchronous JavaScript and XML)是一种在不重新加载整个页面的前提下,与服务器交换数据并更新部分网页内容的技术。现代实践中常配合 JSON 格式使用,而非实际依赖 XML。

XAMPP 是集成环境套件,本地启动后可通过 http://localhost/phpmyadmin/ 访问 MySQL 管理界面,默认用户名为 root,密码为空。

响应式视口缩放逻辑可通过动态设置 <meta name="viewport"> 实现。以下脚本将页面按 375px 设计宽度等比缩放,适配不同设备屏幕:

(function () {
  const baseWidth = 375;
  const viewportWidth = document.documentElement.clientWidth;
  const scaleRatio = viewportWidth / baseWidth;
  const viewportMeta = document.querySelector('meta[name="viewport"]');
  if (viewportMeta) {
    viewportMeta.setAttribute('content', `initial-scale=${scaleRatio}, maximum-scale=${scaleRatio}, user-scalable=no`);
  }
})();

实现页面跳转的简洁封装函数示例:

function navigateToPage() {
  window.location.assign('/ej/2.html');
}

实现水平滚动容器的 CSS 片段(适用于标签栏、商品列表等场景):

.scrollable-container {
  display: flex;
  overflow-x: auto;
  overflow-y: hidden;
  flex-wrap: nowrap;
  scroll-behavior: smooth;
}

.scrollable-container > * {
  flex-shrink: 0;
  white-space: nowrap;
}

原生 JavaScript 实现的 Tab 切换组件(无框架依赖):

document.addEventListener('DOMContentLoaded', () => {
  const tabHeaders = document.querySelectorAll('#title span');
  const tabPanels = document.querySelectorAll('#con ul');

  tabHeaders.forEach((header, index) => {
    header.addEventListener('click', () => {
      // 重置所有状态
      tabHeaders.forEach(h => h.classList.remove('active'));
      tabPanels.forEach(p => p.classList.remove('visible'));

      // 激活当前项
      header.classList.add('active');
      tabPanels[index].classList.add('visible');
    });
  });
});

为网页设置 Favicon(地址栏图标)的标准写法:

<link rel="icon" type="image/png" href="/images/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/svg+xml" href="/images/favicon.svg">

常用 DOM 查询方法对比:

  • document.getElementById('id') —— 通过唯一 ID 获取单个元素
  • document.getElementsByTagName('div') —— 返回 HTMLCollection(类数组)
  • document.getElementsByClassName('box') —— 同样返回 HTMLCollection
  • document.querySelector('.item') —— 返回首个匹配的 Element(推荐用于现代开发)
  • document.querySelectorAll('button[data-action]') —— 返回 NodeList

JavaScript 中的对象分类:

  • 内置对象:由语言标准定义,如 Date、RegExp、JSON
  • 宿主对象:由运行环境(如浏览器)提供,如 document、navigator、fetch
  • 自定义对象:开发者通过构造函数、字面量或 class 创建

获取元素自定义属性值的正确方式(推荐使用 dataset 或 getAttribute):

<div id="demo" data-message="welcome" role="banner">Content</div>
const el = document.getElementById('demo');
console.log(el.dataset.message); // "welcome"
console.log(el.getAttribute('role')); // "banner"

控制元素可见性时,优先考虑语义与性能:

  • visibility: hidden —— 元素仍占据布局空间,适合临时隐藏但保留位置
  • display: none —— 完全脱离文档流,适合永久性移除视觉呈现
  • opacity: 0 + pointer-events: none —— 可用于过渡动画且支持交互屏蔽

定时器管理要点:使用 setInterval 后务必在适当时机调用 clearInterval 防止内存泄漏。例如:

let timerId = setInterval(() => {
  console.log('tick');
}, 1000);

// 清除示例(如组件卸载时)
// clearInterval(timerId);

C 语言编译含数学函数(如 sqrt、sin)的源文件时,需显式链接 math 库:

gcc main.c -o main -lm

IIFE(Immediately Invoked Function Expression)常用于创建独立作用域,避免变量污染:

(function(initValue) {
  const privateVar = initValue * 2;
  console.log(privateVar);
})(5);

rem 是相对于根元素(html)字体大小的相对单位,常用于响应式排版。典型做法是通过 JS 或媒体查询动态设置 html { font-size: ... },再以 rem 做基准计算其他尺寸。

em 则基于父元素的字体大小,嵌套层级越深,计算越复杂,适合局部缩放场景(如按钮内图标尺寸跟随文字变化)。

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。