- 博客(52)
- 收藏
- 关注
原创 Vue.js——组件基础
本文系统介绍了Vue.js的核心开发技术,包括两种API风格(选项式API和组合式API)的对比与使用、组件生命周期管理、组件注册与引用方法、父子组件数据传递(props和自定义事件)、跨级组件数据传递(依赖注入)、动态组件与缓存(KeepAlive)、插槽机制(默认/具名/作用域插槽)以及自定义指令的实现。重点分析了组合式API的优势(代码组织性强、逻辑复用性好)和语法糖简化,详细说明了组件间通信的各种方式(父子/跨级)及其适用场景,并提供了静态资源引用的规范方法。
2025-07-03 13:27:04
934
原创 Express
Express是基于Node.js的简洁灵活的Web应用框架,提供路由、中间件和HTTP请求处理功能。其核心包括:1)路由系统支持字符串、正则表达式等多种路径匹配方式,可处理GET/POST等请求方法;2)中间件机制允许模块化处理请求,通过next()传递控制权;3)内置静态资源、JSON解析等中间件,支持自定义开发;4)扩展了请求/响应对象,提供便捷API。Express采用模块化设计,通过路由器实现应用拆分,支持多种模板引擎进行动态页面渲染,适合构建各种Web应用和API服务。
2025-07-02 10:00:00
731
原创 数据库编程-ORM
摘要:Sequelize是一个基于Promise的Node.js ORM框架,支持多种SQL数据库。它通过对象关系映射技术,让开发者能够使用面向对象的方式操作数据库。本文介绍了Sequelize的基础使用,包括数据库连接、模型定义(通过sequelize.define或Model扩展)、CRUD操作(增删查改)以及三种关联关系(一对一、一对多、多对多)的实现方法。同时还涉及模型同步、原始查询和关联参数配置等内容,为开发者提供了全面的数据库操作解决方案。
2025-07-01 17:45:00
566
原创 数据库编程-RDB
本文介绍了MySQL数据库的基本操作,包括创建数据库、建立连接、创建数据表等基础操作。详细说明了两种执行SQL的方法:字符串拼接和参数占位符,并演示了增删改查的具体实现。文章还比较了execute和query方法的区别,强调预处理语句的安全优势。最后介绍了连接池的使用方法,通过重用连接提高数据库访问效率。这些操作都以Node.js的mysql2模块为例,提供了完整的代码示例。
2025-07-01 07:45:00
235
原创 RESTful
REST是一种基于HTTP协议的网络应用架构风格,通过标准方法(GET/POST/PUT/DETELE)操作资源。其核心原则包括资源标识(URI)、统一接口、无状态、可缓存等。URI设计规范要求使用复数资源名、小写字母、中杠连接,避免动词和文件扩展名。状态码分为5类(信息/成功/重定向/客户端错误/服务器错误),数据通常以JSON格式返回。RESTful API遵循这些原则实现简洁、可扩展的Web服务。
2025-06-30 14:30:00
312
原创 Node.js基础
Node.js是一个基于Chrome V8引擎的JavaScript运行时,用于构建高效、可扩展的网络应用。它采用事件驱动、非阻塞I/O模型,特别适合处理实时数据和高并发场景。文章详细介绍了Node.js的核心特性,包括事件机制、Buffer处理、流操作以及模块系统(支持CommonJS和ESM)。同时涵盖了常用核心模块如fs、path、url等的应用方法,并提供了文件读写、Web服务器创建等典型示例。Node.js在Web开发、实时应用等场景表现优异,但不适用于计算密集型任务。
2025-06-30 10:30:00
1163
原创 大模型技术基础
本文摘要:文章系统介绍了大模型技术的基础知识与应用框架。主要内容包括:1)大语言模型的特征(参数量大、数据需求高);2)智能体技术(感知-决策-执行架构、四维能力);3)RAG技术原理(检索-生成结合)及其在MaxKB知识库系统中的应用;4)Coze平台的工作流节点设计;5)模型微调方法(全参数/Lora等)。着重阐述了各类技术的核心组件、优势局限及典型应用场景,为AI系统开发提供了技术参考框架。
2025-06-29 15:49:26
776
原创 数组的进阶
JavaScript数组是特殊对象,继承Array.prototype属性。可通过[]操作符访问元素,支持非整数键。数组方法丰富:ES5提供9个方法用于遍历、过滤和搜索;ES6新增7个方法实现元素复制、查找和填充。静态方法Array.from()将类数组转为真实数组,Array.of()创建新数组。示例展示了如何操作数组元素和使用方法,以及通过DOM演示Array.from()的实DOM演示Array.from()的实际应用。数组特性包括自动扩容、稀疏处理和混合类型存储。
2025-06-29 11:30:00
279
原创 函数的进阶
本文介绍了JavaScript函数的核心概念,包括函数定义与调用:本文介绍了JavaScript函数的核心概念,包括函数定义与调用方式、函数属性以及自定义属性。重点阐述了执行上下文机制,通过this关键字、call/apply方法和bind方法控制函数调用时的上下文对象。特别说明箭头函数静态绑定this的特性,以及类方法与事件处理中的上下文绑定技巧。最后介绍了高阶函数技术——柯里化,展示如何通过参数分布传递实现函数复用和延迟执行。内容涵盖函数基础、上下文管理到高级函数模式的应用场景。
2025-06-29 09:30:00
1914
原创 代理与反射
ES6 Proxy 代理器用于拦截和修改对象的默认操作行为。通过创建 Proxy 实例,可以设置13种拦截操作,包括属性读写(get/set)、存在性检查(has)、删除(deleteProperty)等。Proxy 必须配合 Reflect 反射方法使用,每个拦截操作都有对应的 Reflect 方法。典型应用包括:验证属性值、防止扩展、负数数组索引等。代理器在目标对象前建立拦截层,实现数据验证、访问控制等高级功能,而 Reflect 则提供统一的底层操作接口。
2025-06-28 18:45:00
1098
原创 对象进阶与扩展
JavaScript对象创建与操作的核心方法包括:Object.create()创建新对象,可指定原型;原型操作;属性管理可配置属性特性;对象属性检测;新增方法Object.is用于精确比较,Object.assign实现对象浅拷贝。文章还介绍了原型链继承机制、原型污染防护措施,以及数据属性和访问器属性的区别,包括getter/setter的使用。通过示例代码展示了对象属性的枚举、配置和继承等核心概念。
2025-06-28 13:26:43
806
原创 迭代器与生成器
Iterator为数据结构提供统一访问接口,使数据成员有序排列。ES6的for...of循环通过调用部署在Symbol.iterator上的迭代器接口实现遍历。迭代器对象包含next方法,返回包含value和done属性的对象。原生支持Iterator的数据结构包括Array、Map等。通过自定义[Symbol.iterator]方法或Generator函数可让对象可迭代。Generator函数使用yield控制迭代流程,并支持清理资源的return方法。
2025-06-25 10:30:00
401
原创 面向对象编程(ES5)
本文介绍了JavaScript中的对象创建和继承机制。首先展示了对象工厂函数的创建方式,指出了其在对象标识和描述性方面的不足。然后详细讲解了构造函数的工作原理,包括新对象创建、原型赋值和this绑定等过程。接着阐述了原型模式,说明如何通过prototype属性为实例共享属性和方法,并以Mouse构造函数为例演示了原型方法的共享特性。最后介绍了原型继承机制,解释了原型链的概念以及构造函数、原型和实例三者之间的关系。文章通过代码示例展示了这些概念的实际应用,包括属性屏蔽现象和原型链的继承原理。
2025-06-25 08:30:00
131
原创 Promise
Promise是处理异步编程的解决方案,具有三种状态(pending、fulfilled、rejected),状态一旦改变不可逆。其优点在于异步结果获取的可靠性,但也存在无法取消、错误需主动捕获等局限。Promise实例立即执行,then回调在当前同步任务完成后触发。Promise.all用于并行执行多个Promise,而Promise.race响应最先完成的任务。在事件循环中,微任务(如Promise回调)优先于宏任务执行。合理使用Promise能有效管理异步流程,但需注意其执行时机和错误处理机制。
2025-06-24 15:55:03
902
原创 异步编程概述
JavaScript采用单线程模型,通过任务队列和事件循环实现异步编程。同步任务在主线程执行栈中顺序执行,异步任务进入任务队列等待,执行栈清空后才会处理队列中的回调函数。定时器(setTimeout/setInterval)和AJAX请求都是典型的异步操作,其回调函数需等待当前代码执行完毕才会触发。这种机制虽然避免了多线程复杂度,但也带来了回调嵌套等问题。异步编程通常需要处理成功/失败两种状态回调,如AJAX通过XMLHttpRequest对象实现非阻塞的服务器交互。
2025-06-24 15:04:25
782
原创 前端工程化
前端工程化包含模块化、组件化、自动化、规范化四大核心理念。实践工具方面,Grunt、Gulp适用于小型项目,Webpack在中大型项目中表现突出,而Vite凭借ES模块原生支持和Rollup打包在开发效率上更具优势。Vite提供开发模式(基于ESM)和生产模式(基于Rollup),支持热加载、TreeShaking等功能。工程化实践包括静态资源处理(public与assets目录区别)、跨域解决方案(CORS/Vite代理)、环境变量管理(import.meta.env)等,通过插件系统扩展功能。
2025-06-17 10:00:00
717
原创 web性能优化
本文介绍了前端性能优化的关键步骤和技术方案。首先通过Lighthouse等工具测量性能指标(FCP、LCP、FID等),找出改进点。优化JS方面包括:移除重复引用、异步加载、使用defer/async属性等。针对布局偏移(CLS),建议将CSS/JS提前加载;通过压缩文件、减少重排重绘(批量DOM操作、缓存样式)提升性能。特别推荐使用IntersectionObserver实现懒加载,相比传统scroll监听更高效。文中提供了具体代码示例,如批量DOM操作、样式优化、懒加载实现等。
2025-06-15 20:30:00
849
原创 浏览器基础及缓存
浏览器技术与缓存机制概述 本文系统介绍了浏览器核心技术与缓存机制,主要包含三部分内容:浏览器基础、渲染流程和缓存策略。主流浏览器如Chrome(Blink)、Firefox(Gecko)通过不同内核实现网页解析,涉及DOM树构建、布局计算和绘制等关键流程。缓存机制部分详述了静态资源缓存控制方法(Expires/Last-Modified/ETag)、HTML5存储方案(LocalStorage/SessionStorage)及Cookies的运用场景。
2025-06-15 14:30:50
949
原创 AJAX——前后端传输数据场景下使用的技术
Ajax是对前端和后端进行数据、文本传递的一种技术。通过与服务器进行少量的数据交换,Ajax可以使网页实现异步更新。这意味着可以摘不重新加载整个网页的情况下,对网页进行部分更新。
2025-06-14 16:29:08
980
原创 产品笔试专业名词梳理
在视频内容插入的短视频广告。特点:强制曝光:用户需观看5-30秒(部分可跳过),确保触达。高相关性:通常基于用户兴趣或视频内容定向投放(如美妆视频插入护肤品广告)。
2025-06-04 13:25:14
845
原创 关于《人人都是产品经理2.0》中的专业名词解释
其核心是连接数字世界与实体世界,利用线上平台吸引用户,最终促成线下消费或服务。客户是购买玩具的父母和终端用户使使用玩具的小孩。当成年人为自己购买玩具时,客户和终端客户这两个角色通常是重叠的,都是同一个自然人。以成年人购买儿童玩具为例,不同情况下,客户和终端客户之间存在不同的关系。,企业无需自行购买和维护服务器或软件许可证,而是按需付费使用。以下是以淘宝为例,分析2B/B端和2C/C端。客户和终端用户是一对常见的用户角色。
2025-05-27 13:17:02
303
原创 JavaScript字符串的常用方法有哪些?
字符串的增删改查并不是对字符串本身进行操作,而是创建一个字符串的副本,对副本进行操作。接收一个整数参数,表示要将字符串复制多少次,然后返回拼接所有副本后的结果。从字符串开头去搜索传入的字符串,并返回位置(如果没找到,则返回 -1 )。复制字符串,如果小于指定长度,则在相应一边填充字符,直至满足长度条件。从字符串中搜索传入的字符串,并返回一个表示是否包含的布尔值。接收一个参数,可以是一个正则表达式字符串,也可以是一个。接收一个参数,可以是一个正则表达式字符串,也可以是一个。可接受多个参数,自动转为字符串。
2025-05-25 13:41:01
885
原创 数组的常用方法
splice():传入三个参数,分别是开始位置,要删除元素的数量,要插入的任意多个元素,返回删除元素的数组,对原数组产生影响。concat():首先会创建一个当前数组的副本,然后再把它的参数添加到副本末尾,最后返回这个新构建的数组,不会影响原始数组。every():对数组每一项都运行传入的测试函数,如果所有元素都返回 true ,则这个方法返回 true。splice():传入两个参数,分别是开始位置,删除元素的数量,返回包含删除元素的数组。forEach():对数组每一项都运行传入的函数,没有返回值。
2025-05-11 18:30:00
576
原创 正则表达式
引入引入正则表达式有哪些应用场景?表单验证:验证用户输入的合法性(如邮箱、手机号、密码强度等)。数据清洗与格式化:处理用户输入或外部数据,去除冗余信息或统一格式。路由匹配:在 SPA(单页应用)中解析 URL 参数。字符串替换与转换:动态替换文本或转换格式。数据提取与解析:从日志、API 响应或用户输入中提取结构化数据。国际化与本地化处理:处理不同国家的手机号、邮政编码等格式。性能优化与安全防护:避免正则表达式漏洞或性能瓶颈。创建正则表达式对象。
2025-05-11 13:32:48
1057
原创 JavaScript中的数据类型
基本类型复杂类型。基本类型直接储存在栈中。复杂类型的数据储存在堆内存中,变量在栈中保存指向堆的引用地址。也就是变量存储的是堆内存地址,而非数据本身。let a = 10;let b = a;// 赋值操作b = 20;// 10值a的值为一个基本类型,是存储在栈中,将a的值赋给b,虽然两个变量的值相等,但是两个变量保存了两个不同的内存地址。// Bob引用类型数据存放在堆中,每个堆内存对象都有对应的引用地址指向它,引用地址存放在栈中。(图解)解析:变量储存的是复杂类型数据的堆地址。
2025-05-10 16:28:00
1126
原创 处理静态资源
function(req, res)告诉Web服务器对象每当其接收到请求时要做什么,然后通过response.end()方法关闭连接。每个HTTP请求和响应都会发送HTTP头。HTTP头发送的是附加信息,包括内容类型、服务器发送响应的日期以及HTTP状态码等。当浏览器载入Web页面时,浏览器是连接到正在浏览的网站服务器的客户端;通过使用url模块可以读取URL,并分析它,然后做出不同的响应。为不同的请求URL指定执行路径,即路由(route)。引入http模块,并保存到一个变量中,以便使用。
2025-04-29 08:00:00
608
原创 迭代器与生成器
也就是说,一个数据结构只要具有Symbol.iterator方法,就可以认为是“可遍历的”(iterable)。Iterator 接口约定对象必须具备Symbol.iterator方法,且该方法返回一个迭代器对象。由于 Generator 函数返回的迭 代器对象,只有调用next方法才 会遍历下一个内部状态,所以其实 提供了一种可以暂停执行的函数。一个对象如果要具备可被for...of调用的 Iterator 接口,就必须在Symbol.iterator上部署生成迭代器对象的方法。
2025-04-28 22:12:32
831
原创 HTTP content-type
Content-Type(内容类型),一般是指网页中存在的 Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件。Content-Type 标头告诉客户端实际返回的内容的内容类型。
2025-04-28 21:27:18
389
原创 Set与Map
Set的基本用法Set的基本用法Set类似于数组,但其成员的值都是唯一的。创建方法Set本身是一个构造函数,用来生成Set实例。add( )方法可以添加元素到Set实例中,但不会添加重复的值。初始化Set函数可以接受一个数组(或具有Iterable接口的其他数据结构)作为参数, 来初始化Set实例。具有Iterable接口的数据结构:数组Array、字符串String、Map和Set。应用(Set成员的值都是唯一的。去掉数组中的重复值去掉字符串中重复字符内部比较机制。
2025-04-19 14:26:10
864
原创 Symbol
概述概述ES6引入新类型Symbol,表示独一无二的值,作为JavaScript语言的第7种类型。Symbol值通过Symbol()函数生成。Symbol函数前不能使用new命令,因为生成的Symbol是一个原始类型的值,不是对象。·>symbolSymbol函数的参数Symbol函数可以接受一个字符串作为参数,表示对Symbol实例的描述。如果Symbol的参数是一个对象,就会调用其 toString方法,将其转换为字符串,然后才生成一个 Symbol值。
2025-04-13 13:45:00
1511
原创 面向对象(ES6)
在ES6中,使用class关键字来定义类,类是对象的模板。类可以包含构造函数和方法,可以使用继承实现类的扩展。方法是类中定义的函数,用于实现对象的行为或功能。set 提供了对属性的setter,通过条件判断对接收的值进行验证,如果通过则保存。使用static关键字来定义类的静态方法和属性,它们属于类本身而不是类的实例。getter和setter被定义为类的属性,但是被访问和设置时表现为方法。使用getter和setter来访问和设置对象的属性。关键字来实现继承,子类可以继承父类的属性和方法。
2025-04-13 10:00:00
440
原创 组件化可编辑表格
"score":[{"name":"张三","chinese":100,"math":90,"english":80},{"name":"李四","chinese":90,"math":100,"english":80},{"name":"王五","chinese":80,"math":80,"english":100}],{"name":"张三","sex":"男","age":18,"address":"北京"},
2025-04-12 13:47:18
1087
原创 Module模块化
使用<script>元素以及src属性来指定代码加载的位置,以便加载 JS代码文件。将整个模块当作单一对象进行导入,该模块的所有导出都会作为该对象的属性。使用<script>元素但不使用src属性,来嵌入内联的JS代码。以 ../ 为起始,表示从父级目录开始解析。以 ./ 为起始,表示从当前目录开始解析。在模块中使用as用导出名称表示本地名称。以 / 为起始,表示从根目录开始解析。导入: import关键字。导出:export关键字。导出:export关键字。
2025-04-07 20:07:32
185
原创 绝美宋词:实时显示符合条件的完整宋词
请使用 Vue 或原生DOM ,完成 index.html 文件中的 TODO 部分。1. 完成数据请求(数据来源 ./data.json),data.json 是宋词数据,poetry_content 表示词句,title 表示词牌名,author 表示词人。
2025-04-02 20:42:50
308
原创 HTML入门—传统布局与语义化布局
div布局的优缺点分析通过 CSS(如 Flexbox、Grid、浮动、定位等)可以精准控制布局,实现响应式设计、层叠效果、复杂对齐等。支持动态调整元素的尺寸、位置、间距,适配不同设备和屏幕尺寸。HTML 专注于内容结构,CSS 处理样式,符合“关注点分离”原则,代码更易维护和扩展。结合 HTML5 语义化标签(如<header><nav><article>等)可以提升代码可读性。相比传统的<table>布局,<div>更少引入冗余代码,减少页面加载时间。
2025-03-23 17:56:10
606
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人