Javascript 碎片
方括号[] 动态属性访问 obj[key] 表达式计算键名 数组访问 arr[0] 索引本质是字符串 计算属性名{ [key]: value }动态生成属性名(ES6) 解构赋值 const [a] = [1] 提取数组或对象的值 正则表达式字符集合/[aeiou]/匹配一组字符 类数组操作arguments[0] 类似数组的访问方式 SymbolSymbol 是 ES6 引入的一种 基本数据类型,用于表示 唯一的、不可变的值 。 同步循环阻塞微队列:无限循环问题分析问题代码12345678910111213141516171819202122function* generator() { const value = yield Promise.resolve(1); const value2 = yield Promise.resolve(value); const value3 = yield Promise.resolve(value2); return value3;}function run(generator) {...
SSR 与 Hydration(注水)详解
一、什么是 SSR?SSR(Server-Side Rendering,服务端渲染) 是指在服务器上将页面的结构和数据预先渲染成完整的 HTML 字符串,并返回给浏览器。 ✅ 用户请求 → 服务器生成含内容的 HTML → 浏览器直接展示 SSR 的优势 首屏加载快:用户无需等待 JavaScript 下载执行即可看到内容。 SEO 友好:搜索引擎爬虫可以直接抓取已渲染的内容。 更好的用户体验:尤其在网络较差或设备性能较低时表现更佳。 二、SSR 返回的是“静态”HTML服务器返回的 HTML 是包含实际内容的静态结构,例如: 123456789<html> <body> <div id="app"> <h1>欢迎来到我的网站</h1> <p>这是从数据库获取的数据</p> </div> <script src="/assets/client.js" defer></script&...
property和attribute区别
“property”(属性)和“attribute”(特性/属性)这两个术语经常被使用,有时可以互换,但在不同语境下有明确的区别 Attribute vs Property 完整总结核心概念 Attribute(特性): HTML 标签上的属性 Property(属性): DOM 对象上的属性 根本区别 特性 Attribute Property 归属 HTML 标签 DOM 对象 值类型 总是字符串 任意 JS 类型 大小写 不敏感 敏感 操作方式 getAttribute()/setAttribute() 点符号操作 布尔属性 存在即为真 true/false 操作示例1<input id="myInput" type="text" value="初始值" checked custom-attr="自定义" /> 12345678// Attribute 操作element.getAttribute("value"); /...
Vue 框架整体理解笔记
一、前端框架到底要解决什么?假设没有 Vue,我们写一个页面: 12<div id="temperature"></div><button id="btn">+1</button> JS: 123456789101112131415let temperature = 80;const el = document.querySelector("#temperature");const btn = document.querySelector("#btn");function render() { el.innerText = temperature;}btn.onclick = () => { temperature++; render();};render(); 本质上我们做了三件事: 123456789101112数据temperature = 80↓用户操作temperature++↓操作 DO...
TypeScript 编译工具 `tsconfig.json`配置项说明
tsc 作用是 检查类型 和 编译成 js . 为了更好地控制编译行为(比如目标 JS 版本、是否严格检查类型等),建议创建一个配置文件。 target 作用: 指定编译后的 JavaScript 目标版本。 常见值: “ES3”(最老,兼容性最好,但功能少) “ES5”(经典,兼容所有浏览器) “ES2015” 或 “ES6”(现代浏览器支持) “ES2016”、”ES2017”、”ES2020”、”ESNext”(最新语法) module 作用: 指定模块系统的代码生成格式。 常见值: “commonjs” → 用于 Node.js(使用 require / module.exports) “es2015” / “esnext” → 用于浏览器(使用 import / export) “amd”、”umd” → 用于老项目或库打包 strict: true 作用: 开启所有严格类型检查模式 outDir 作用: 指定编译后生成的 .js 文件输出到哪个文件夹 rootDir: “./src” 作用: 指定源码结构的根...
CSS属性 display属性的contents值
display: contents 是 CSS Display Module Level 3 中引入的一个比较特殊且强大的值。它的作用是:让一个元素本身不产生任何盒模型(即不渲染),但它的子元素会像直接继承了该元素的父元素一样正常渲染。 简单来说:这个元素“消失”了,但它的孩子“冒出来”代替它参与布局。 🔍 一、基本语法123.element { display: contents;} 🧩 二、核心特性 特性 说明 不渲染自身 元素本身不生成任何视觉框(box),即没有背景、边框、大小、定位等。 子元素“提升” 子元素直接参与父元素的布局,仿佛父元素不存在。 保留语义和 DOM 结构 DOM 节点仍然存在,JavaScript 和 CSS 选择器仍可访问它。 不影响可访问性(需注意) 屏幕阅读器仍能读取内容,但布局上“跳过”了该层。 ✅ 三、实际例子示例 1:display: contents 的效果123456<div class="parent"> <div class=&qu...
GitHub Actions Workflow 语法
Github workflow 语法 适用场景:CI/CD 自动化构建、测试、部署等文件位置:.github/workflows/xxx.yml语法格式:YAML(注意缩进,通常为 2 空格) 一、基本结构123456789101112131415name: 工作流名称(可选)on: [触发事件] # 必需jobs: job1: runs-on: 运行环境 steps: - step1 - step2 job2: needs: job1 runs-on: ubuntu-latest steps: - step3 二、核心字段详解1. name(可选) 定义工作流在 GitHub Actions 面板中显示的名称。 示例: 1name: CI Pipeline 2. on(必需) 定义触发工作流的事件。 常见事件: push:代码推送 pull_request:PR 创建/更新 schedule:定时任务(cron) workflow_dispatch:手动触发 示例123...
Docker
简述 通过 dockerfile 构造镜像 通过镜像文件构造容器 运行 docker 容器 常用命令🧰 一、镜像相关(Images) 命令 说明 docker images 查看本地所有镜像 docker pull 镜像名:标签 从仓库下载镜像(如 docker pull nginx:alpine) docker build -t 镜像名:标签 . 用当前目录的 Dockerfile 构建镜像 docker rmi 镜像名或ID 删除镜像(-f 强制删除) docker image ls 同 docker images docker image rm 同 docker rmi 示例1234docker pull ubuntu:20.04docker build -t my-app:v1 .docker imagesdocker rmi my-app:v1 📦 二、容器相关(Containers) 命令 说明 docker run [选项] 镜像名 [命令] 创建并启动一个容器(最常用!) docker start 容器名/...
CommonJS 模块系统
一、每个 CJS 文件都被包装成函数123(function (exports, require, module, __filename, __dirname) { // 写的代码}); 包装带来: 作用域隔离:顶层变量不会污染全局。 注入五个参数:exports、require、module、__filename、__dirname 是形参,不是全局变量,每个模块独立。 导出通道:module.exports 作为参数传入,模块代码往它上面挂东西。 二、module、exports、module.exports 的关系12const module = { exports: {} };const exports = module.exports; // 初始指向同一对象 挂属性安全:exports.a = 1 等价于 module.exports.a = 1,因为操作同一对象。 整体赋值危险:exports = { a: 1 } 断开引用,module.exports 还是空对象,导出失效。 整体替换正...
Git 基础知识总结
一、Git 的核心概念Git 是一个分布式版本控制系统,它通过记录文件的快照(snapshot) 而不是差异,来管理代码的历史变化。 1. 四大核心对象 对象 作用 特点 Blob 存储文件内容(不包含文件名) 内容相同 → 哈希相同 Tree 存储目录结构(文件名 + 指向 blob 或子 tree) 目录的“快照” Commit 代表一次提交,指向一个 tree,记录作者、时间、消息和父提交 历史的“节点” Tag 指向某个 commit 的固定引用,用于标记版本(如 v1.0) 不会移动 ✅ 所有对象都通过 SHA-1 哈希唯一标识。 二、暂存(add) git add 的作用 核心功能:将工作目录中的文件变更添加到暂存区(index) ,为下一次提交准备内容。 本质操作: 读取文件内容 → 生成 Blob 对象 → 更新 .git/index 文件。 结果:暂存区记录了“下一次提交”的快照。 暂存区(index) 存放的目录是最新的 commit 的 tree 目录和 add 的 三、提交(Commit)与快照 每次 git co...