diff --git "a/\347\216\213\345\276\267\344\274\237/2025-12-29.MD" "b/\347\216\213\345\276\267\344\274\237/2025-12-29.MD" new file mode 100644 index 0000000000000000000000000000000000000000..18e2ce39363a8774cd1ad559890968ab71777cc6 --- /dev/null +++ "b/\347\216\213\345\276\267\344\274\237/2025-12-29.MD" @@ -0,0 +1,81 @@ +## 笔记 +设计模式类型 +```bash +- 创建型模式 +-- 工厂模式(Factory Pattern) +-- 抽象工厂模式(Abstract Factory Pattern) +-- 单例模式(Singleton Pattern) +-- 建造者模式(Builder Pattern) +-- 原型模式(Prototype Pattern) +``` +## 练习 + +第一题 +```js +for (let i = 1; i <= 9; i++) { + let row = ""; + for (let j = 1; j <= i; j++) { + row += j + "*" + i + "=" + (i * j) + " "; + } + console.log(row); +} + +``` + +第二题 +```js + +let age = 18; +let status; +status = age >= 18 ? '成年' : '未成年'; +if (age >= 18) { + status = '成年'; +} else { + status = '未成年'; +} + +``` + + +第三题 +```js + +let target = Math.floor(Math.random() * 100) + 1; +let guess = 50; + +if (guess > target) { + console.log("太大"); +} else if (guess < target) { + console.log("太小"); +} else { + console.log("猜对了"); +} + +``` + +第四题 +```js +function findDuplicates(arr) { + let duplicates = []; + for (let i = 0; i < arr.length; i++) { + if (arr.indexOf(arr[i], i + 1) !== -1 && duplicates.indexOf(arr[i]) === -1) { + duplicates.push(arr[i]); + } + } + return duplicates; +} +console.log(findDuplicates([1, 2, 4, 4, 3, 3, 1, 5, 3])); + +``` + +第五题 +```js + +function countOccurrences(arr, item) { + let count = 0; + for (let x of arr) { + if (x === item) count++; + } + return count; +} +console.log(countOccurrences([1, 2, 4, 4, 3, 4, 3], 4)); diff --git "a/\347\216\213\345\276\267\344\274\237/2025-12-31.md" "b/\347\216\213\345\276\267\344\274\237/2025-12-31.md" new file mode 100644 index 0000000000000000000000000000000000000000..e14e5767c51224efe72b9bf0fc515aa3ee525ac5 --- /dev/null +++ "b/\347\216\213\345\276\267\344\274\237/2025-12-31.md" @@ -0,0 +1,38 @@ +## 笔记 +mvc控制器简介 +```bash +MVC 控制器负责响应针对 ASP.NET MVC 网站发出的请求。 每个浏览器请求都映射到特定的控制器。 +``` +mvc控制器操作 +```bash +控制器公开控制器操作。 操作是控制器上的一种方法,当你在浏览器地址栏中输入特定 URL 时,将调用该方法。 +``` +## 练习 + +第一题 +```js + +function mergeArrays(arr1, arr2) { + return arr1.concat(arr2); +} +console.log(mergeArrays([1, 2, 3, 4], ['a', 'b', 'c', 1])); + +``` + +第二题 +```js + +const numbersToSum = [10, 20, 30, 40, 50]; +const totalSum = numbersToSum.reduce((acc, curr) => acc + curr, 0); +console.log(totalSum); + +``` + +第三题 +```js + +const nums = [1, 2, 3, 4, 5, 6, 7, 8, 9]; +const odds = nums.filter(num => num % 2 !== 0); +console.log(odds); + +``` \ No newline at end of file diff --git "a/\347\216\213\345\276\267\344\274\237/2026-1-4.md" "b/\347\216\213\345\276\267\344\274\237/2026-1-4.md" new file mode 100644 index 0000000000000000000000000000000000000000..053d6739f9f39abd9da245c8b21a662223817149 --- /dev/null +++ "b/\347\216\213\345\276\267\344\274\237/2026-1-4.md" @@ -0,0 +1,35 @@ +## 笔记 +自定义路由 +```bash +自定义路由将传入请求映射到名为 Archive 的控制器,并调用 Entry () 操作。调用 Entry () 方法时,输入日期将作为名为 entryDate 的参数传递。 +``` +路由约束 +```bash +使用路由约束来限制与特定路由匹配的浏览器请求。 可以使用正则表达式来指定路由约束。 + +定义路由时,可以使用约束来限制与路由匹配的 URL。 +``` +## 练习 + +第一题 +```js +const originArr = [1, 2, 3, 4, 5]; +const doubled = originArr.map(num => num * 2); +console.log(doubled); + +``` +第二题 +```js + +function sumToN(n) { + let sum = 0; + for (let i = 1; i <= n; i++) { + sum += i; + } + return sum; +} + +console.log(sumToN(100)); + + +``` diff --git "a/\347\216\213\345\276\267\344\274\237/2026-1-5.MD" "b/\347\216\213\345\276\267\344\274\237/2026-1-5.MD" new file mode 100644 index 0000000000000000000000000000000000000000..2f97a77286abc4d85f580079d6f7cffc1fe37275 --- /dev/null +++ "b/\347\216\213\345\276\267\344\274\237/2026-1-5.MD" @@ -0,0 +1,22 @@ +笔记 +部分视图和视图组件有什么区别? 区别: +部分视图:只包含HTML片段,没有业务逻辑 +视图组件:包含HTML和业务逻辑,更独立 +选择建议: +简单重用HTML片段 → 部分视图 +需要业务逻辑的独立组件 → 视图组件 +Razor语法中的 @ 符号什么时候用? + +优化建议: +使用部分视图缓存:@await Html.PartialAsync("_Partial", Model, ViewData) +避免在视图中执行复杂逻辑 +使用客户端渲染减轻服务器压力 +压缩和合并CSS/JS文件 +Tag Helpers不生效怎么办? + +检查步骤: +确保 _ViewImports.cshtml 中有 @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers +检查Tag Helper语法是否正确 +查看生成的HTML源代码,确认是否正确转换 +重启应用清除缓存 +Gitee - 基于 Git 的代码托管和研发协作平台 \ No newline at end of file diff --git "a/\347\216\213\345\276\267\344\274\237/2026-1-7.MD" "b/\347\216\213\345\276\267\344\274\237/2026-1-7.MD" new file mode 100644 index 0000000000000000000000000000000000000000..bb7641cb1926f5ef98febf230170be9aa3627d2d --- /dev/null +++ "b/\347\216\213\345\276\267\344\274\237/2026-1-7.MD" @@ -0,0 +1,15 @@ +笔记 +控制器是MVC的协调中心,接收用户请求,协调模型和视图完成响应。 + +核心职责: + +请求处理:接收并验证用户输入 +业务协调:调用模型执行业务逻辑 +数据传递:将处理结果传递给视图 +流程控制:决定下一步显示哪个视图 +设计原则: + +保持“瘦控制器”,业务逻辑应放在模型中 +单一职责,每个控制器方法专注一个功能 +避免直接在控制器中操作数据库 +将数据验证委托给模型或专门的验证器 \ No newline at end of file diff --git "a/\347\216\213\345\276\267\344\274\237/2026-1-8.MD" "b/\347\216\213\345\276\267\344\274\237/2026-1-8.MD" new file mode 100644 index 0000000000000000000000000000000000000000..35f0116475279a6a1edb8d56d153692dede307a3 --- /dev/null +++ "b/\347\216\213\345\276\267\344\274\237/2026-1-8.MD" @@ -0,0 +1,18 @@ +核心职责: + +数据展示:将模型数据渲染为HTML/UI +用户交互:提供表单、按钮等交互元素 +界面结构:定义页面布局和视觉呈现 +数据绑定:动态显示模型状态变化 +设计原则: + +保持“笨视图”,仅负责展示 +避免在视图中编写业务逻辑 +最小化视图中的代码逻辑 +使用模板语言分离结构和逻辑 +视图类型: + +强类型视图:绑定特定模型类型 +布局视图:定义页面通用结构 +部分视图:可重用的UI组件 +视图组件:包含逻辑的独立UI单元 \ No newline at end of file diff --git "a/\347\216\213\345\276\267\344\274\237/2026-1-9.MD" "b/\347\216\213\345\276\267\344\274\237/2026-1-9.MD" new file mode 100644 index 0000000000000000000000000000000000000000..1f1a0979de7f7cd3d01bb04f5f90896e59d32f00 --- /dev/null +++ "b/\347\216\213\345\276\267\344\274\237/2026-1-9.MD" @@ -0,0 +1,19 @@ +模型是MVC的业务核心,封装应用数据和业务规则,独立于用户界面。 + +核心职责: + +数据管理:定义数据结构、持久化操作 +业务逻辑:实现核心计算规则和业务流程 +数据验证:确保数据完整性和有效性 +状态管理:维护应用状态变更 +设计原则: + +保持“胖模型”,集中存放业务逻辑 +独立于控制器和视图,可单独测试 +遵循单一职责,避免“上帝对象” +提供清晰的API供控制器调用 +模型类型: + +领域模型:封装业务实体和规则 +视图模型:为特定视图优化的数据结构 +数据模型:直接映射数据存储结构 \ No newline at end of file diff --git "a/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-5.MD" "b/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-5.MD" new file mode 100644 index 0000000000000000000000000000000000000000..2f97a77286abc4d85f580079d6f7cffc1fe37275 --- /dev/null +++ "b/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-5.MD" @@ -0,0 +1,22 @@ +笔记 +部分视图和视图组件有什么区别? 区别: +部分视图:只包含HTML片段,没有业务逻辑 +视图组件:包含HTML和业务逻辑,更独立 +选择建议: +简单重用HTML片段 → 部分视图 +需要业务逻辑的独立组件 → 视图组件 +Razor语法中的 @ 符号什么时候用? + +优化建议: +使用部分视图缓存:@await Html.PartialAsync("_Partial", Model, ViewData) +避免在视图中执行复杂逻辑 +使用客户端渲染减轻服务器压力 +压缩和合并CSS/JS文件 +Tag Helpers不生效怎么办? + +检查步骤: +确保 _ViewImports.cshtml 中有 @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers +检查Tag Helper语法是否正确 +查看生成的HTML源代码,确认是否正确转换 +重启应用清除缓存 +Gitee - 基于 Git 的代码托管和研发协作平台 \ No newline at end of file diff --git "a/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-7.MD" "b/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-7.MD" new file mode 100644 index 0000000000000000000000000000000000000000..bb7641cb1926f5ef98febf230170be9aa3627d2d --- /dev/null +++ "b/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-7.MD" @@ -0,0 +1,15 @@ +笔记 +控制器是MVC的协调中心,接收用户请求,协调模型和视图完成响应。 + +核心职责: + +请求处理:接收并验证用户输入 +业务协调:调用模型执行业务逻辑 +数据传递:将处理结果传递给视图 +流程控制:决定下一步显示哪个视图 +设计原则: + +保持“瘦控制器”,业务逻辑应放在模型中 +单一职责,每个控制器方法专注一个功能 +避免直接在控制器中操作数据库 +将数据验证委托给模型或专门的验证器 \ No newline at end of file diff --git "a/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-8.MD" "b/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-8.MD" new file mode 100644 index 0000000000000000000000000000000000000000..35f0116475279a6a1edb8d56d153692dede307a3 --- /dev/null +++ "b/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-8.MD" @@ -0,0 +1,18 @@ +核心职责: + +数据展示:将模型数据渲染为HTML/UI +用户交互:提供表单、按钮等交互元素 +界面结构:定义页面布局和视觉呈现 +数据绑定:动态显示模型状态变化 +设计原则: + +保持“笨视图”,仅负责展示 +避免在视图中编写业务逻辑 +最小化视图中的代码逻辑 +使用模板语言分离结构和逻辑 +视图类型: + +强类型视图:绑定特定模型类型 +布局视图:定义页面通用结构 +部分视图:可重用的UI组件 +视图组件:包含逻辑的独立UI单元 \ No newline at end of file diff --git "a/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-9.MD" "b/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-9.MD" new file mode 100644 index 0000000000000000000000000000000000000000..1f1a0979de7f7cd3d01bb04f5f90896e59d32f00 --- /dev/null +++ "b/\347\216\213\345\276\267\344\274\237/\347\216\213\345\276\267\344\274\237/2026-1-9.MD" @@ -0,0 +1,19 @@ +模型是MVC的业务核心,封装应用数据和业务规则,独立于用户界面。 + +核心职责: + +数据管理:定义数据结构、持久化操作 +业务逻辑:实现核心计算规则和业务流程 +数据验证:确保数据完整性和有效性 +状态管理:维护应用状态变更 +设计原则: + +保持“胖模型”,集中存放业务逻辑 +独立于控制器和视图,可单独测试 +遵循单一职责,避免“上帝对象” +提供清晰的API供控制器调用 +模型类型: + +领域模型:封装业务实体和规则 +视图模型:为特定视图优化的数据结构 +数据模型:直接映射数据存储结构 \ No newline at end of file