普通视图

发现新文章,点击刷新页面。
今天 — 2025年11月21日首页

AI “自动驾驶” 的使用分享

作者 林小帅
2025年11月21日 11:30

AI “自动驾驶” 的使用分享

一、开场:从 "AI 善后工程师" 说起

大家有没有遇到过这样的情况:

满怀期待地让 AI 帮你写代码,结果跑出来一堆问题,然后你花了大量时间去修改、调试、善后。最后发现,还不如自己写来得快。

这时候,你就变成了 "AI 善后工程师"

我自己长时间使用以来的一些思考,就是如何跳出这个困境,让 AI 真正成为你的效率倍增器,而不是麻烦制造者。


二、问题根源:模糊的需求,模糊的结果

让我们看一个真实的对比案例。

模糊版本

我想加个导出 Excel 的功能

结果会怎样?

虽然 AI 和 Spec 也能做,但这个跑出来的结果可想而知。AI 会做大量假设:

  • 导出什么数据?哪些字段?
  • 在哪个页面?什么时候触发?
  • 文件格式怎样?命名规则?
  • 有没有数据量限制?

不断的和 AI 拉扯“需求”,然后 AI 也一直被打断需要你不断的 “澄清” 事实。 

AI 执行完成后,你发现 AI 生成的代码需要你不断的修改、补充、调整,就变成了 "AI 善后工程师"。  

清晰版本

我想在顾问模块的对账单列表页添加导出 Excel 功能 

Ai 工作流:.windsurf\workflows\add-export-function.md
// 这是 “项目” 中定义的 AI 工作流,可以明确的给 AI 提供上下文信息 

业务背景:
业务每月需要将对账单数据导出给组长,现在只能手动复制,容易出错
 
功能描述:
- 在列表页顶部添加"导出 Excel"按钮
- 导出当前筛选条件下的所有数据(不分页)
- 导出字段:账单号、提交时间、状态...
- 文件名格式:x月对账单_YYYYMMDD.xlsx 

用户场景:
- 场景1:用户筛选了某个月份的数据,点击导出,得到该月份的 Excel 文件
- 场景2:用户未筛选,点击导出,得到所有数据的 Excel 文件 

技术偏好:
- 使用项目中已有的 exceljs 库 // 如果没有现成组件,可以明确给 AI
- 导出限制:最多 10000 条数据,超过提示分批导出

结果? 

AI 能够一次性生成 70-80% 可用的代码,你只需要做少量调整和验证。 


三、核心方法:如何跳出 "AI 善后工程师"?

1. 5W1H 原则 

这是产品思维的基础方法,同样适用于和 AI 沟通: 

  • Why(为什么):业务背景、痛点
  • What(做什么):核心功能
  • Who(谁用):目标用户角色
  • Where(在哪):哪个模块/页面
  • When(什么时候):触发时机
  • How(怎么做):技术偏好(可选)

2. 明确边界

告诉 AI 什么要做,什么不要做

做:简单的关键字搜索
不做:复杂的高级筛选、搜索历史

这能避免 AI 过度设计,把简单问题复杂化。 

3. 提供具体场景

不要说 "用户字段可以搜索",而是

场景:
1. 数据列表中,用户输入"张三",点击搜索,看到搜索的结果。
2. 点击 "张三" 的数据项ID,跳转到详情页。

具体的场景描述能让 AI 理解完整的用户操作流程。

4. 说明优先级(如果有多个功能)

P0(必须):基础搜索功能
P1(重要):搜索结果高亮
P2(可选):搜索历史记录

这样 AI 知道先做什么,避免在次要功能上浪费时间。

现在 AI “分析” 能力强了不少,自然也语言可以工作,但如果你掌握一些 "提示技巧",确实能让 AI 生成更准确的提案,减少来回澄清的次数,提高效率


四、理性认知:为什么说迷信 “AI 全自动” 能力是不好的做法?

我们应该追求的是 "效率增益",而不是 "一次完美完成" 的代码。

关键是考虑显著的实现上的时间节省。

AI 最适合的场景:

  • 高重复性/模板化:如 CRUD、DTO转换、前端字段映射
  • 高耗时:纯手工需要超过 2-3 小时的繁琐任务
  • 低风险:非核心生产逻辑
  • 易于验证:容易判断对错,修复成本低  

AI 不适合的场景: 

  • 核心业务逻辑(需要深度理解业务)
  • 复杂的架构设计决策
  • 需要大量上下文的重构工作
  • 安全敏感的代码(需要人工深度审查)

五、最佳实践总结

好的做法

  • 明确定义任务范围 - 用 5W1H 描述清楚
  • 聚焦 AI 擅长场景 - 重复性、模板化任务
  • 鼓励先计划再编码 - 使用 OpenSpec 等工作流
  • 提供项目上下文指令 - 通过工作流文件、项目文档
  • 保留人工复核环节 - AI 生成,人工审查
  • 充分利用自动测试 - 用测试验证 AI 代码的正确性

不好的做法

  • 上下文臃肿,不加取舍 - 把整个项目塞给 AI
  • 不写测试直接上 - 无法验证 AI 代码质量
  • 无急停,任其失控 - AI 跑偏了也不及时纠正
  • 忽视 AI 给出的安全扫描 - AI 提示的安全问题不重视
  • 迷信 AI 全自动能力 - 期望 AI 解决所有问题
  • AI 代码不整理沉淀 - 生成的代码不规范化,技术债累积  

六、结语:AI 是副驾驶,你是司机

AI "自动驾驶" 不是让你做甩手掌柜,而是

  • 你负责方向:明确需求、定义边界、把握质量
  • AI 负责执行:快速生成代码、处理重复性工作
  • 协同提效:在合适的场景下,发挥各自优势

记住:好的需求描述 = 好的 AI 输出

当你从 "AI 善后工程师" 变成 "AI 驾驶员" 时,你会发现效率提升不止一倍。

人机的高效协同,与 AI 结队编程应是当下最优解。、


版权声明:
本文版权属于作者 林小帅,未经授权不得转载及二次修改。
转载或合作请在下方留言及联系方式。

光子跃迁与清华SIGS启动“量子灯塔”实习计划

2025年11月21日 11:26
11月21日,国内智能影像领域创新企业光子跃迁与清华大学深圳国际研究生院光电智能实验室(简称清华SIGS-LIT实验室)达成合作,启动“量子灯塔”实习计划。此次合作旨在衔接学术科研与产业需求,为学生提供实践机会,同时为企业注入科研创新动力。除实习计划外,未来双方还计划围绕光学与图像领域的关键技术,开展多项联合预研项目。

尚美数智部署华为Wi-Fi防偷拍技术,识别客房隐藏摄像头

2025年11月21日 11:23
36氪获悉,尚美数智成为华为在商业市场的首家“安心酒店”合作的酒管集团,后续将联合打造“智慧客房”。该合作在隐私安全、绿色节能、极致网络等方面深度融合华为“Wi-Fi+X”技术。如部署华为Wi-Fi防偷拍技术,通过AP设备7x24小时自动检测,可精准识别酒店客房隐藏摄像头。

胖东来成立梦之城商贸新公司,注册资本1亿元

2025年11月21日 11:12
36氪获悉,爱企查App显示,近日,许昌市胖东来梦之城商贸有限公司注册成立,注册资本1亿元人民币,经营范围包括日用百货销售、服装服饰零售、电影放映、游艺娱乐活动等,冯延军担任法定代表人、总经理等,胖东来创始人于东来通过许昌市胖东来商贸集团有限公司间接持股超69%。

亚马逊拟在美国密西西比州投资30亿美元,建设新一代数据中心园区

2025年11月21日 11:04
11月21日,亚马逊宣布,计划在美国密西西比州沃伦县投资至少30亿美元,建设一个支持人工智能和云计算技术的新数据中心园区。据估计,这项投资将为亚马逊数据中心园区创造至少200个新工作岗位,并在沃伦县整体范围内额外提供300多个全职岗位。(界面)

阿里国际站与东风柳州汽车有限公司等三家企业签署品牌出海合作协议

2025年11月21日 11:03
36氪获悉,在11月19日举行的阿里国际站中西部国货品牌出海峰会上,阿里国际站与东风柳州汽车有限公司、焦作佰辰重工机械有限公司、河南中誉鼎力智能装备有限公司等三家行业领军企业签署品牌出海合作协议,旨在通过数字化外贸的全链路解决方案,加速中西部国货品牌出海。

从IP源头抓起、让漫剧的成本更低,笔落惊鸿用AI赋能内容生产全链路|早期项目

2025年11月21日 10:55

作者|兰杰

编辑|乔芊

漫剧风口上的公司又多了一家。

在AI工具的加持下,漫剧继承了传统短剧的商业模型,同时重新将成本降了下来,在今年创造了又一个增长奇观。笔落惊鸿(全称“北京笔落惊鸿科技有限公司”)于今年5月入局,成为了这一风口上的公司。

IP同样是门好生意,也是短剧乃至漫剧行业所需的核心竞争力之一。笔落惊鸿选择从源头抓起,培育自己的IP,以小说、短剧、漫剧等作为放大器,实现IP的轻商业化开发。

公司于今年5月正式创立,核心成员大多数来自字节跳动、腾讯和百度等互联网公司,有着丰富的内容行业从业经验。团队核心技术骨干还参与过字节跳动AIGC内容生产平台从0到1的搭建。

笔落惊鸿的创始人王礼兵,有着十余年的网文行业从业经验,以及足够垂直的简历——历任宜搜小说内容总监、番茄小说策略运营负责人、字节跳动垂类产品安全策略负责人,具备从编辑、运营、产品到审核等数字阅读行业全链路经营管理经验。

目前,公司的主营业务包含网文生产、短剧剧本生产以及短剧和漫剧的制作。旗下产品包括结合海内外多个大模型搭建的AIGC工具“创作鲸”等,以及即将上线的一款付费阅读App。

半年多的时间,公司人数已经拓展到了50余人,其中研发人员占大头,也因此笔落惊鸿旗下的AIGC工具在降本增效上有着较为出色的表现。

通过自己的AI工具,笔落惊鸿已经可以包揽漫剧的生产全流程,每天可以产出15-20分钟的内容,对应15-20集的漫剧。一些3D高质量AI内容,笔落惊鸿可以做到每天产出2-3分钟的内容,在细节的拟真上、人物外貌的统一性上,均有着较好的呈现。

对比之下,通过精细化调整和模型匹配,团队制作漫剧(包含沙雕漫、动态漫乃至3D漫等)所需的成本最低可压缩到每分钟十几元到数十元不等。

创始人认为,漫剧会是一个长久的风口,因为它的成本足够低,且不会因为演员身价的上涨产生成本波动。

巨量引擎数据显示,抖音端漫剧付费自然流从2024上半年的0,一路增长至今年二季度的超300万/天、8月的超1000万/天。

迄今为止,笔落惊鸿在剧本、短剧和漫剧上的收入已经达到了数百万元,可以覆盖签约网文作者和买断网文作品的成本。

网文业务是笔落惊鸿押注的长线目标之一。

在网文行业,中小作者普遍面临着稿费不透明、平台分成下降,以及AI内容冲击等问题。由此,作者的生存空间被挤占,行业里一些好的、有创新性的内容也难以被看见。王礼兵担心,这种状况持续下去,行业会不再有“新鲜血液”进来。事实上,坚持对内容的追求,为中小作者提供一个可以实现梦想的平台,也是王礼兵创立笔落惊鸿的初衷。

凭借着深厚的行业积累,创业不过半年的时间,笔落惊鸿已经签约了150位作者,同时储备了数千名作者的资源池。

在与作者的合作上,公司坚持理想至上。

具体来讲,公司与作者的合作包含买断和分成两种模式。买断模式下,笔落惊鸿的编辑团队会根据作者过往的作品和交付质量来进行判断。最高的一次,公司给予了一位作者20万元的买断费用,彼时,相关作品还没有进行变现。分成模式下,公司愿意给作者扣除运营费以外的全部收益。对比之下,网文行业的分成比例平均在50%左右。如今,笔落惊鸿签约的作者中,已经有人赚到了数万元的分成。

“我们保底买断的费用平摊下来,可以达到30-1000元/千字。”王礼兵表示。

公司希望可以通过买断制,吸引已经有一定成绩的网文作者,保证前期内容的积累。同时通过几乎是行业内最高的分成比例,抓住更多的新作者,做到可持续发展。

短期内,公司要靠剧本、漫剧和短剧业务养家。未来公司希望网文这块业务可以独立,且反哺其他业务。

此外,凭借公司的AI人才和技术,笔落惊鸿还考虑与游戏公司等达成合作,做影视互动游戏乃至3D游戏等。在王礼兵向36氪呈现的一段3D游戏的Demo(游戏开发过程中的演示版本)中,已经展现出了与传统网游接近的动作连贯性和画面精细度。

20个CSS实用技巧,10分钟从小白变大神!

作者 刘大华
2025年11月21日 10:48

大家好,我是大华!今天给大家分享一些比较实用的CSS技巧,不管你是前端新手还是老司机,这些技巧都能让你的开发效率翻倍!废话不多说,直接上代码了。

1. 使用变量维护主题色

/* 定义CSS变量 */
:root {
  --primary-color: #3498db;
  --secondary-color: #2ecc71;
  --text-color: #333;
}

/* 使用变量 */
.button {
  background-color: var(--primary-color);
  color: white;
  padding: 10px 20px;
  border: none;
  border-radius: 5px;
}

.card {
  border: 1px solid var(--secondary-color);
  color: var(--text-color);
}

适用场景:需要维护统一设计规范的项目,方便快速切换主题

2. Flex布局居中(终极解决方案)

.center-container {
  display: flex;
  justify-content: center; /* 水平居中 */
  align-items: center;     /* 垂直居中 */
  height: 100vh;          /* 视口高度 */
}

/* 如果只需要单方向居中 */
.vertical-center {
  display: flex;
  align-items: center;    /* 仅垂直居中 */
}

.horizontal-center {
  display: flex;
  justify-content: center; /* 仅水平居中 */
}

适用场景:任何需要居中的布局,特别是响应式设计

3. Grid网格布局

.grid-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 3等分列 */
  grid-gap: 20px;                       /* 网格间距 */
  padding: 20px;
}

.grid-item {
  background: #f0f0f0;
  padding: 20px;
  border-radius: 8px;
}

/* 响应式网格 */
@media (max-width: 768px) {
  .grid-container {
    grid-template-columns: repeat(2, 1fr); /* 小屏幕2列 */
  }
}

@media (max-width: 480px) {
  .grid-container {
    grid-template-columns: 1fr; /* 超小屏幕1列 */
  }
}

适用场景:复杂布局、卡片布局、图片画廊

4. 自定义滚动条

.custom-scrollbar {
  width: 300px;
  height: 200px;
  overflow-y: scroll;
  padding: 10px;
}

/* Webkit浏览器滚动条样式 */
.custom-scrollbar::-webkit-scrollbar {
  width: 8px; /* 滚动条宽度 */
}

.custom-scrollbar::-webkit-scrollbar-track {
  background: #f1f1f1; /* 轨道背景 */
  border-radius: 4px;
}

.custom-scrollbar::-webkit-scrollbar-thumb {
  background: #c1c1c1; /* 滑块颜色 */
  border-radius: 4px;
}

.custom-scrollbar::-webkit-scrollbar-thumb:hover {
  background: #a8a8a8; /* 悬停颜色 */
}

适用场景:需要统一浏览器滚动条样式的项目

5. 文字渐变效果

.gradient-text {
  background: linear-gradient(45deg, #ff6b6b, #4ecdc4);
  -webkit-background-clip: text; /* 关键:背景裁剪到文字 */
  -webkit-text-fill-color: transparent; /* 关键:文字透明 */
  background-clip: text;
  font-size: 3rem;
  font-weight: bold;
}

适用场景:标题设计、品牌文字、特色展示

6. 毛玻璃效果

.frosted-glass {
  background: rgba(255, 255, 255, 0.25); /* 半透明背景 */
  backdrop-filter: blur(10px);           /* 背景模糊 */
  -webkit-backdrop-filter: blur(10px);   /* Safari支持 */
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 10px;
  padding: 20px;
  color: white;
}

适用场景:现代设计风格、卡片悬浮效果、导航栏

7. 悬浮阴影动画

.card {
  background: white;
  border-radius: 10px;
  padding: 20px;
  transition: all 0.3s ease; /* 所有属性过渡0.3秒 */
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.card:hover {
  transform: translateY(-5px); /* 悬浮上移5px */
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); /* 阴影加深 */
}

适用场景:卡片设计、按钮交互、产品展示

8. 自定义复选框

/* 隐藏原生复选框 */
.custom-checkbox input[type="checkbox"] {
  display: none;
}

/* 自定义复选框样式 */
.checkbox-label {
  display: flex;
  align-items: center;
  cursor: pointer;
  font-size: 16px;
}

.checkmark {
  width: 20px;
  height: 20px;
  border: 2px solid #ddd;
  border-radius: 4px;
  margin-right: 10px;
  position: relative;
  transition: all 0.3s ease;
}

/* 选中状态 */
.custom-checkbox input[type="checkbox"]:checked + .checkbox-label .checkmark {
  background: #3498db;
  border-color: #3498db;
}

/* 选中后的对勾 */
.custom-checkbox input[type="checkbox"]:checked + .checkbox-label .checkmark::after {
  content: "";
  position: absolute;
  left: 6px;
  top: 2px;
  width: 6px;
  height: 10px;
  border: solid white;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

适用场景:表单美化、统一设计语言

9. 图片悬浮放大

.image-container {
  width: 300px;
  height: 200px;
  overflow: hidden; /* 隐藏溢出部分 */
  border-radius: 8px;
}

.zoom-image {
  width: 100%;
  height: 100%;
  object-fit: cover; /* 保持图片比例 */
  transition: transform 0.5s ease; /* 缩放过渡 */
}

.zoom-image:hover {
  transform: scale(1.1); /* 悬浮放大1.1倍 */
}

适用场景:产品图集、相册、作品展示

10. 文字阴影效果

.text-shadow {
  font-size: 3rem;
  font-weight: bold;
  color: #2c3e50;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3); /* 水平 垂直 模糊 颜色 */
}

/* 多层阴影效果 */
.multi-shadow {
  font-size: 3rem;
  font-weight: bold;
  color: #e74c3c;
  text-shadow: 
    1px 1px 0 #c0392b,
    2px 2px 0 #922b21,
    3px 3px 5px rgba(0, 0, 0, 0.6);
}

适用场景:标题设计、文字特效、海报设计

11. 渐变边框

.gradient-border {
  padding: 20px;
  border: 4px solid;
  border-image: linear-gradient(45deg, #ff6b6b, #4ecdc4) 1;
  border-radius: 8px;
  background: white;
}

/* 另一种实现方式 */
.gradient-border-alt {
  padding: 20px;
  background: 
    linear-gradient(white, white) padding-box,
    linear-gradient(45deg, #ff6b6b, #4ecdc4) border-box;
  border: 4px solid transparent;
  border-radius: 8px;
}

适用场景:特色边框、高亮元素、品牌标识

12. 粘性定位

.sticky-header {
  position: sticky;
  top: 0; /* 距离顶部0时固定 */
  background: white;
  padding: 15px 0;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  z-index: 1000; /* 确保在最上层 */
}

.sticky-sidebar {
  position: sticky;
  top: 100px; /* 距离顶部100px时固定 */
  align-self: start; /* Grid布局中对齐 */
}

适用场景:导航栏、侧边栏、表头固定

13. 文字溢出省略

/* 单行文字溢出显示省略号 */
.single-line-ellipsis {
  white-space: nowrap;      /* 不换行 */
  overflow: hidden;         /* 隐藏溢出 */
  text-overflow: ellipsis;  /* 显示省略号 */
  width: 200px;
}

/* 多行文字溢出显示省略号 */
.multi-line-ellipsis {
  display: -webkit-box;
  -webkit-line-clamp: 3;    /* 显示3行 */
  -webkit-box-orient: vertical;
  overflow: hidden;
  width: 300px;
}

适用场景:标题截断、内容摘要、表格单元格

14. 自定义选择文本样式

::selection {
  background: #3498db;    /* 选中背景色 */
  color: white;           /* 选中文字颜色 */
  text-shadow: none;      /* 去除文字阴影 */
}

/* 针对不同浏览器前缀 */
::-moz-selection {
  background: #3498db;
  color: white;
  text-shadow: none;
}

适用场景:提升用户体验、品牌一致性

15. 滤镜效果

.image-filters {
  transition: filter 0.3s ease;
}

/* 灰度效果 */
.grayscale {
  filter: grayscale(100%);
}

.grayscale:hover {
  filter: grayscale(0%);
}

/* 多个滤镜组合 */
.multiple-filters {
  filter: brightness(1.2) contrast(0.8) saturate(1.5);
}

/* 模糊效果 */
.blur-effect {
  filter: blur(2px);
}

适用场景:图片特效、主题切换、视觉设计

16. 动画关键帧

@keyframes bounce {
  0%, 100% {
    transform: translateY(0); /* 起始和结束位置 */
  }
  50% {
    transform: translateY(-20px); /* 跳起位置 */
  }
}

.bouncing-element {
  animation: bounce 2s ease-in-out infinite; /* 动画名称 时长 缓动 重复 */
}

/* 加载动画 */
@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.loading-spinner {
  width: 40px;
  height: 40px;
  border: 4px solid #f3f3f3;
  border-top: 4px solid #3498db;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

适用场景:加载动画、交互动效、注意力引导

17. 响应式图片

.responsive-image {
  max-width: 100%;    /* 最大宽度100% */
  height: auto;       /* 高度自动 */
  display: block;     /* 块级元素 */
}

/* 保持比例的容器 */
.aspect-ratio-box {
  width: 100%;
  height: 0;
  padding-bottom: 56.25%; /* 16:9比例 (9/16=0.5625) */
  position: relative;
  overflow: hidden;
}

.aspect-ratio-box img {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover; /* 覆盖整个容器 */
}

适用场景:响应式网站、图片画廊、产品展示

18. 三角形绘制

.triangle-up {
  width: 0;
  height: 0;
  border-left: 50px solid transparent;
  border-right: 50px solid transparent;
  border-bottom: 100px solid #3498db;
}

.triangle-down {
  width: 0;
  height: 0;
  border-left: 50px solid transparent;
  border-right: 50px solid transparent;
  border-top: 100px solid #e74c3c;
}

.triangle-left {
  width: 0;
  height: 0;
  border-top: 50px solid transparent;
  border-bottom: 50px solid transparent;
  border-right: 100px solid #2ecc71;
}

适用场景:工具提示、下拉箭头、装饰元素

19. 文字描边效果

.text-stroke {
  font-size: 3rem;
  font-weight: bold;
  color: white;
  -webkit-text-stroke: 2px #3498db; /* 描边宽度和颜色 */
  text-stroke: 2px #3498db;
}

/* 兼容写法 */
.text-stroke-alt {
  font-size: 3rem;
  font-weight: bold;
  color: transparent;
  -webkit-text-stroke: 2px #3498db;
  text-shadow: none;
}

适用场景:标题设计、海报文字、特色展示

20. 混合模式

.blend-mode {
  background-image: url('background.jpg');
  background-size: cover;
}

.blend-mode::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #3498db;
  mix-blend-mode: overlay; /* 叠加混合模式 */
}

/* 图片混合模式 */
.image-blend {
  background: 
    linear-gradient(45deg, #ff6b6b, #4ecdc4),
    url('image.jpg');
  background-blend-mode: overlay;
  background-size: cover;
}

适用场景:创意设计、图片处理、视觉效果


总结

这20个CSS技巧包含了现代最常见的开发需求,从布局到动画,从响应式到视觉效果。掌握这些技巧,你就能应对90%的日常开发需求。

其中有几点比较关键:

  1. 变量管理让维护更轻松
  2. Flex/Grid是布局的首选
  3. 过渡和动画提升用户体验

希望这些技巧能帮助你在开发中事半功倍!

本文首发于公众号:程序员刘大华,专注分享前后端开发的实战笔记。关注我,少走弯路,一起进步!

📌往期精彩

《SpringBoot+Vue3 整合 SSE 实现实时消息推送》

《这20条SQL优化方案,让你的数据库查询速度提升10倍》

《SpringBoot 动态菜单权限系统设计的企业级解决方案》

《Vue3 + ElementPlus 动态菜单实现:一套代码完美适配多角色权限系统》

腾讯集团副总裁李强:腾讯大模型能力加速进化,混元3D即将面向海外用户开放

2025年11月21日 10:48
36氪获悉,11月21日,在腾讯全球数字生态大会无锡峰会上,腾讯集团副总裁、政企业务总裁李强表示,AI正成为腾讯核心业务提效的关键引擎,腾讯自研的混元大模型加速迭代,一年发布了超过30个新模型。他透露,腾讯混元3D正加速出海进程,近期即将推出国际站,面向全球用户开放。混元3D模型API也已经在腾讯云国际站上线,开发者和企业用户可快捷接入。

国家能源局:10月份全社会用电量8572亿千瓦时,同比增长10.4%

2025年11月21日 10:43
36氪获悉,11月21日,国家能源局发布10月份全社会用电量等数据。10月份,全社会用电量8572亿千瓦时,同比增长10.4%。分产业看,第一产业用电量120亿千瓦时,同比增长13.2%;第二产业用电量5688亿千瓦时,同比增长6.2%,其中,工业用电量同比增长6.4%;第三产业用电量1609亿千瓦时,同比增长17.1%,其中,充换电服务业以及信息传输、软件和信息技术服务业用电量增长较快;城乡居民生活用电量1155亿千瓦时,同比增长23.9%。

别再把对象当“字典”!JS 零基础也能看懂的“属性账本”拆解笔记

2025年11月21日 10:37

前言

目前我的 JS 技能树点亮了“对象”这一格,这篇文章就是一份“新手村”笔记,只用我已掌握的钥匙,把对象这只“收纳盒”的隔层、暗格、标签一次性摸清楚,不越级打怪,也不提前透支未来语法。如果你也刚学完对象,想先把它玩透再往下走,欢迎一起原地复盘,把基础踩成肌肉记忆。

对象

  • 在 js 这门语言中流传着一句话叫 万物皆对象,顾名思义不管你是哪种数据类型都可看作是对象。
    我们知道的数据类型可分为两种——原始类型和引用类型
  1. 原始类型又叫简单类型,有 string number boolean undefined null Symbol bigInt
  2. 引用类型又叫复杂类型,有 function array object
  • 在解释为什么万物都可被称为对象之前我们先聊今天第一个话题——如何创建一个对象

一. 创建对象的方式

1. 对象字面量 只用一个 {} 就能解决

const obj = {
    a : 1
    }    // 这是我们最常看到的

2. new Object()new Object() 创建一个对象后,再在外围添加属性

const obj = new Object()  // 构造函数
obj.name = '饶总'
const abc = 'age'   // 目的添加 key 为 age ,value 为 20
obj[abc] = 20   //当 abc 是变量的时候用[],就可直接访问到 age
delete obj[abc]   //要删掉属性就用 delete
console.log(obj);

3. new 调用自定义的构造函数 关于构造函数

  • 当我们需要批量化创建对象时,可以使用构造函数
    方便理解这句话,首先我们设立一个目标,我们要把公司员工的姓名年龄职位输入到系统里面方便统计管理,按照古板的方法就是创造无数个职位对应的函数,一个一个输入姓名年龄放进去
function Insert(name, age) {
  const obj = {
    name: name,
    age: age,
    job: 'coder'
  }
  return obj
}

function Insert2(name, age) {
  const obj = {
    name: name,
    age: age,
    job: 'manager'
  }
  return obj
}

Insert('饶总', 18)

但是栈的容量有限,函数过多就会导致爆栈,那么这个时候就可以用构造函数来解决

function Insert(name, age, job) {
  this.name = name
  this.age = age
  this.job = job
}
const p = new Insert('晓总', 18, 'coder') // { name: '晓总', age: 18, job: 'coder' }
const p2 = new Insert('佳颖', 19, 'manager')
console.log(p);
console.log(p2);
  • 当一个函数被 new 调用时,我们称之为构造函数
    再来一个关于生产汽车的例子
function Car(color) {
  this.name = 'su7'
  this.height = '1400'
  this.lang = '4800'
  this.weight = '1500'
  this.color = color
}

const car1 = new Car('purple') // 实例化一个对象
const car2 = new Car('yellow')

由于生产的汽车的大部分标签是一样的,只有极个别标签能自行选择,这个时候用 new 构造一个函数就显得尤为高明

二. new 干了什么?

  1. 创建一个 this 对象
  2. 执行构造函数中的代码,就是给 this 对象添加属性值
  3. 返回这个 this 对象
function person() {
  const _this = {}   //构造一个 _this 对象
  _this.name = 'su7'   
  _this.color = 'green'  //给该对象添加属性值
  return _this       //返回该对象
}

const obj = person()

console.log(obj);

三. 什么是包装类?

1. 当用户定义一个字面量,v8默认执行的还是 new Xxx()

var num = 123  //var num = new Number(123)  
var str = 'hello'  //var str = new String('hello')

2. 一个包装类的实例对象,在参与运算时,会自动拆箱成原始类型

var num = 123  // v8 默认执行 var num = new Number(123)
num.a = 'aaa'
//delete num.a   // 发现是原始类型就自动删除
console.log(num.a); // 执行结果为 undefined,既证明了 num 可以是对象,又说明了 num 的属性被删除了

3. 因为 js 是弱类型语言, 所以只有在赋值语句执行时才会判断值的类型(typeof),当值被判定为原始类型时,就会自动将包装对象上添加的属性移除

var str = 'hello' 
//typeof('hello')   判断类型为string
//  v8执行 var str = new String('hello')
str.len = 2
//delete str.len  将包装对象上添加的属性移除

结语

对象既是 JavaScript 的地基,也是后续所有语法的交汇点;先把这块“自留地”的边界、门牌和规则摸透,再学任何新框架都能事半功倍。愿这份最基础的笔记,能在你未来的进阶路上当一块靠谱的垫脚石。感谢阅读!

没TA不欢?这才是年轻人吃火锅的「隐形标配」丨2025火锅搭子报告

2025年11月21日 10:37

要组一次这样完美的火锅局,任何一「味」的缺席,都可能让酝酿已久的氛围感功亏一篑。但在寒冷的冬夜,想快速实现这样一顿火锅局并非难事——使用美团闪购快速下单,最快30分钟送达,把缺位的火锅搭子们通通请进家门。

在八成消费者都会选择「利用线上平台完成一顿火锅美餐」的背景下,美团闪购也在深刻理解年轻人随时随地产生的「火锅想象」,App上品类齐全,不仅是蘸料底料火锅菜,酒水饮料、零食甜品甚至应急清洁工具,都能随时安排上,一键轻松集齐。即便是临时起意的快乐,也能迅速满足,让「精心策划」的火锅仪式不留遗憾缺口。

即便再三规划布置,也可能火锅局中途出现新的需求缺口:比如吃到一半发现缺了一味「灵魂蘸料」;或酒过三巡,需要来点果味饮料醒醒酒,做个调剂;又或者聚会尾声需要清洁时,少了清洁油污的关键器具……美团闪购都能像一位可靠的「全能管家」随时补位,快速接住每一个临时需求,让欢聚氛围不被任何琐事打断。

「火锅一开,搭子准到」,快来「开搭吧火锅局」活动薅羊毛:11月22日,在美团App搜【火锅搭子】,领券满49减15,每周六下单还有机会获得火锅套餐免单及冬日小黄包周边。这个冬天,让我们轻松开启一场完美的居家火锅局,感受火锅所带来的爽快味蕾体验与热闹氛围,守护住火锅局上的所有美好治愈~

❌
❌