分类 Obsidian 下的文章

Obsidian

Sass & SCSS

支持嵌套声明、变量、混合宏 (类似于函数,可以将常用的样式块封装起来并在多个地方调用,甚至支持参数传递) 等为什么浏览器不直接兼容 SCSS ?这是一个非常深刻的问题,触及了 Web 标准演进的核心逻辑。浏览器不直接兼容 SCSS,本质上是因为“工程化需求”与“浏览器执行效率”之间的矛盾。以下是几个核心原因:1. 浏览器的“解析代价”与性能考量浏览器(如 Chrome、Safari)的渲染引擎(如

Obsidian

Temporal Dead Zone, TDZ 暂时性死区与组件书写规范

1. 现象复盘 (The Issue)在开发 React 组件时,浏览器或构建工具(如 Vite)抛出以下错误:BashUncaught ReferenceError: Cannot access 'variableName' before initialization本质原因:在变量(或字面量函数)完成初始化之前,代码尝试在当前作用域中访问它。这触发了 JavaScript

Obsidian

IDN 同形异义字攻击 (Homograph Attack) 与域名防御机制

[INFO] 什么是 IDN 同形异义字攻击?国际化域名 (IDN) 同形攻击(也称同形字欺骗/Script Spoofing)是一种钓鱼手段。攻击者利用 Unicode 中不同文字系统(如西里尔字母、希腊字母和拉丁字母)中形状相同或相似、但底层编码不同的字符,构造出视觉上极具迷惑性的假域名。_案例_:将常规域名 example.com 中的拉丁字母 a,替换为西里尔字母 а(exаmple.co

Obsidian

OOP 码风 OOP Coding Style DDD

在面向对象编程中,代码通常会涉及两个核心问题:数据放在哪里?业务逻辑放在哪里?不同项目、框架和团队,会形成不同的代码组织风格。下面总结三种常见风格:贫血模型充血模型流式接口 / 链式调用1. 贫血模型 Anemic Domain Model贫血模型指的是:对象本身主要只保存数据,真正的业务逻辑写在外部的 Service 层里。也就是说,对象像一个“数据容器”,而不是一个有行为能力的对象。典型结构c