当前位置: 首页 > news >正文

Vue百日学习计划Day9-15天详细计划-Gemini版

重要提示:

  • 番茄时钟: 每个番茄钟为25分钟学习,之后休息5分钟。每完成4个番茄钟,进行一次15-30分钟的长休息。
  • 灵活性: JavaScript 的概念较多,尤其是 this、原型链、闭包和异步编程,可能需要更多时间来理解和消化。请根据个人情况调整。
  • 多动手实践: JavaScript 学习的核心在于动手编写代码、调试和观察结果。请务必在每个知识点学习后进行编码实践。
  • 资源利用:
    • MDN Web Docs (JavaScript): https://developer.mozilla.org/zh-CN/docs/Web/JavaScript
    • 现代 JavaScript 教程 (JavaScript.info): https://zh.javascript.info/
    • 阮一峰 ECMAScript 6 入门: https://es6.ruanyifeng.com/
  • 当前日期: 2025年5月16日 (用于知晓信息时效性,但本计划内容相对稳定)

学习目标 Day 9-15:JavaScript 核心 (ES6+)

  • Day 9:JS 基础 - 数据类型、变量、操作符与流程控制
    • 理解 JavaScript 的基本数据类型 (原始类型与对象类型)。
    • 掌握 let, constvar 的区别和使用。
    • 熟悉常用操作符 (算术、赋值、比较、逻辑)。
    • 掌握基本的流程控制语句 (if/else, switch, for, while)。
  • Day 10:作用域、闭包与 this 指向初步
    • 理解全局作用域、函数作用域和块级作用域。
    • 理解什么是闭包,闭包的用途和常见场景。
    • 初步接触 this 关键字,了解其在不同执行上下文中的指向。
  • Day 11:对象、数组基础与常用方法 (一)
    • 学习对象的创建、属性的读写、遍历。
    • 学习数组的创建、访问、遍历。
    • 掌握数组常用方法:forEach, push, pop, shift, unshift, slice, splice
  • Day 12:数组常用方法 (二) 与字符串方法
    • 深入掌握数组的转换、迭代和查找方法:map, filter, reduce, find, findIndex, includes
    • 掌握常用的字符串属性和方法 (length, toUpperCase, toLowerCase, trim, indexOf, slice, substring, split, replace)。
  • Day 13:ES6+ 核心特性 (一) - 函数、解构、模板字符串、展开/剩余
    • 学习箭头函数的语法、特点及其与普通函数的区别 (特别是 this 指向)。
    • 掌握数组解构和对象解构赋值。
    • 熟练使用模板字符串。
    • 理解并运用展开运算符和剩余运算符。
  • Day 14:原型链与继承基础,Promise 与异步编程入门
    • 初步理解原型 (prototype)、原型链 (__proto__) 的概念以及 JavaScript 基于原型的继承方式。
    • 理解同步与异步编程的区别。
    • 学习 Promise 的基本概念 (pending, fulfilled, rejected) 和 then, catch, finally 的用法。
  • Day 15:Async/Await 与 ES Modules 模块化
    • 学习 async/await 作为 Promise 的语法糖,如何简化异步代码的书写。
    • 理解错误处理 (try...catch) 在 async/await 中的应用。
    • 掌握 ES Modules 的导入 (import) 和导出 (export, export default) 语法。

每日学习计划 (3小时/天)

Day 9: JS 基础 - 数据类型、变量、操作符与流程控制

  • 第1个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: JavaScript 简介与引入方式。
    • 内容: 了解 JS 的历史、能做什么。学习在 HTML 中通过 <script> 标签引入 JS (内联和外链)。
    • 实践: 在 HTML 文件中写下第一行 JS 代码 (console.log("Hello, World!");) 并成功在浏览器控制台输出。
  • 第2个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 基本数据类型 (原始类型)。
    • 内容: String, Number, Boolean, Null, Undefined, Symbol (ES6), BigInt (ES2020)。学习 typeof 操作符。
    • 实践: 声明不同原始类型的变量,并使用 typeof 检查它们的类型。
  • 第3个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 变量声明: let, const, (var 的基本了解及其问题)。
    • 内容: 理解 letconst 的块级作用域特性,const 用于声明常量。简要了解 var 的函数作用域和变量提升问题。
    • 实践: 尝试用 let, const 声明变量,在不同作用域下测试其可见性。尝试修改 const 声明的变量看会发生什么。
  • 第4个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 常用操作符。
    • 内容: 算术操作符 (+, -, *, /, %, ++, --), 赋值操作符 (=, +=, -= 等), 比较操作符 (==, =, !=, !, >, <, >=, <=), 逻辑操作符 (&&, ||, !)。
    • 实践: 编写小程序练习这些操作符,特别是 ===== 的区别。
    • (长休息: 15-30分钟)
  • 第5个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 流程控制语句 (一): if/else, switch
    • 内容: 学习条件判断语句的语法和应用场景。
    • 实践: 编写根据不同条件执行不同代码块的程序,例如判断一个数字是正数、负数还是零。
  • 第6个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 流程控制语句 (二): for 循环, while 循环, do...while 循环。
    • 内容: 学习不同类型循环语句的语法和应用。
    • 实践: 使用循环打印数字序列、遍历简单数组(索引访问)等。

Day 10: 作用域、闭包与 this 指向初步

  • 第1个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 作用域 (Scope) - 全局作用域、函数作用域。
    • 内容: 理解变量的可访问性范围。理解 var 的函数作用域和变量提升。
    • 实践: 在函数内外声明变量,观察其作用域。
  • 第2个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 作用域 (Scope) - 块级作用域 (ES6)。
    • 内容: 学习 letconst 引入的块级作用域概念。
    • 实践:if 语句块或 for 循环块中使用 let 声明变量,观察其作用域。
  • 第3个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 闭包 (Closure) - 概念与基本形式。
    • 内容: 理解什么是闭包(函数以及其声明时的词法环境的组合),为什么函数可以“记住”其外部作用域的变量。
    • 实践: 编写一个简单的闭包示例,例如一个函数返回另一个可以访问外部函数变量的函数。
  • 第4个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 闭包 (Closure) - 用途与常见场景 (如模块化、防抖节流初步)。
    • 内容: 探讨闭包的实际应用,如创建私有变量、数据封装。
    • 实践: 尝试用闭包实现一个简单的计数器,其计数值不能从外部直接修改。
    • (长休息: 15-30分钟)
  • 第5个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: this 指向初步 - 全局上下文与函数直接调用。
    • 内容: 了解在全局作用域中 this 的指向 (浏览器中通常是 window)。在普通函数直接调用时 this 的指向 (非严格模式下是 window,严格模式下是 undefined)。
    • 实践: 在全局和普通函数中打印 this,观察结果。
  • 第6个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: this 指向初步 - 作为对象方法调用。
    • 内容: 理解当函数作为对象的方法调用时,this 指向该对象。
    • 实践: 创建一个对象,为其添加方法,在方法中打印 this

Day 11: 对象、数组基础与常用方法 (一)

  • 第1个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 对象 (Object) - 创建与基本操作。
    • 内容: 对象字面量创建对象,属性的读取 (点表示法、方括号表示法)、修改、添加和删除。
    • 实践: 创建一个描述个人信息的对象,并对其属性进行增删改查。
  • 第2个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 对象 (Object) - 遍历与方法。
    • 内容: 使用 for...in 循环遍历对象属性。对象方法的定义和调用。
    • 实践: 遍历上一个练习中创建的对象。为对象添加一个方法(例如打招呼)。
  • 第3个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 数组 (Array) - 创建与基本操作。
    • 内容: 数组字面量创建数组,通过索引访问、修改数组元素,length 属性。
    • 实践: 创建一个包含数字和字符串的数组,练习访问和修改元素。
  • 第4个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 数组常用方法 (一): forEach, push, pop
    • 内容: 学习 forEach 遍历数组,push 在末尾添加元素,pop 删除末尾元素。
    • 实践: 使用 forEach 打印数组每个元素。练习 pushpop
    • (长休息: 15-30分钟)
  • 第5个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 数组常用方法 (二): shift, unshift
    • 内容: 学习 shift 删除头部元素,unshift 在头部添加元素。
    • 实践: 练习 shiftunshift,对比与 poppush 的区别。
  • 第6个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 数组常用方法 (三): slice, splice
    • 内容: 学习 slice (浅拷贝,不修改原数组) 截取数组,splice (修改原数组) 添加/删除/替换数组元素。
    • 实践: 重点练习 splice 的不同用法,理解其参数含义。

Day 12: 数组常用方法 (二) 与字符串方法

  • 第1个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 数组迭代方法 (一): map
    • 内容: 学习 map 方法如何基于原数组创建一个新数组,新数组的每个元素是原数组元素经过回调函数处理后的结果。
    • 实践: 将一个数字数组中的每个元素平方后生成新数组。将一个对象数组中的特定属性提取出来生成新数组。
  • 第2个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 数组迭代方法 (二): filter
    • 内容: 学习 filter 方法如何创建一个新数组,包含所有通过回调函数测试的元素。
    • 实践: 从数字数组中筛选出所有偶数。从对象数组中筛选出符合特定条件的对物。
  • 第3个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 数组迭代方法 (三): reduce
    • 内容: 学习 reduce 方法如何将数组中的所有元素累积处理为一个最终结果 (可以是任何类型)。理解其回调函数的四个参数 (accumulator, currentValue, currentIndex, array) 和初始值参数。
    • 实践: 计算数组所有元素的和或积。将二维数组扁平化。
  • 第4个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 数组查找方法: find, findIndex, includes
    • 内容: 学习 find 返回第一个满足条件的元素,findIndex 返回第一个满足条件的元素的索引,includes 判断数组是否包含某个值。
    • 实践: 在数组中查找特定元素或其索引。
    • (长休息: 15-30分钟)
  • 第5个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 字符串常用属性与方法 (一)。
    • 内容: length, toUpperCase(), toLowerCase(), trim(), indexOf(), lastIndexOf(), includes()
    • 实践: 练习这些字符串方法,处理简单的字符串操作。
  • 第6个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 字符串常用属性与方法 (二)。
    • 内容: slice(), substring(), substr() (了解即可,不推荐), split(), replace() (基本用法)。
    • 实践: 截取字符串,按分隔符分割字符串,替换字符串中的子串。

Day 13: ES6+ 核心特性 (一) - 函数、解构、模板字符串、展开/剩余

  • 第1个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 箭头函数 (Arrow Functions) - 语法与基本用法。
    • 内容: 学习箭头函数的简洁语法,不同参数情况下的写法。
    • 实践: 将普通函数改写为箭头函数。
  • 第2个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 箭头函数 (Arrow Functions) - this 指向。
    • 内容: 重点理解箭头函数不绑定自己的 this,它会捕获其所在上下文的 this 值。对比与普通函数 this 的区别。
    • 实践: 在对象方法、回调函数 (如 setTimeout, 数组方法) 中使用箭头函数和普通函数,观察 this 的指向。
  • 第3个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 解构赋值 (Destructuring Assignment) - 数组解构。
    • 内容: 从数组中提取值并赋给变量,支持默认值、剩余元素。
    • 实践: 从数组中方便地获取元素,交换变量值。
  • 第4个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 解构赋值 (Destructuring Assignment) - 对象解构。
    • 内容: 从对象中提取属性值并赋给变量,支持重命名、默认值、嵌套解构。
    • 实践: 从对象中方便地获取属性,特别是在函数参数中使用对象解构。
    • (长休息: 15-30分钟)
  • 第5个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 模板字符串 (Template Literals)。
    • 内容: 使用反引号 (`) 创建字符串,支持嵌入表达式 ${expression} 和多行字符串。
    • 实践: 使用模板字符串拼接包含变量和表达式的复杂字符串。
  • 第6个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 展开运算符 (…) 与剩余参数 (…)。
    • 内容: 学习展开运算符在数组和对象中的应用 (如数组合并、对象合并/克隆)。学习剩余参数收集函数的多余参数。
    • 实践: 使用展开运算符合并数组、克隆对象。编写一个接受任意数量参数并求和的函数。

Day 14: 原型链与继承基础,Promise 与异步编程入门

  • 第1个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 原型 (Prototype) 与 prototype 属性。
    • 内容: 理解构造函数、实例对象和原型对象之间的关系。理解每个函数都有一个 prototype 属性 (指向一个对象)。
    • 实践: 定义一个构造函数,查看其 prototype 属性,并向其添加方法。
  • 第2个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 原型链 (__proto__Object.getPrototypeOf())。
    • 内容: 理解每个对象都有一个内部链接到其原型对象,形成原型链。属性查找会沿着原型链进行。
    • 实践: 创建构造函数的实例,检查实例的 __proto__ 是否指向构造函数的 prototype。尝试访问实例自身没有但原型有的属性/方法。
  • 第3个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 基于原型的继承 (基础概念)。
    • 内容: 简要了解如何通过修改原型链实现继承 (如 Child.prototype = Object.create(Parent.prototype))。重点是理解概念,不深入实现复杂继承。
    • 实践: 阅读相关资料,理解继承的基本思想。
  • 第4个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 同步与异步编程概念。回调函数与回调地狱。
    • 内容: 理解同步操作阻塞后续代码执行,异步操作不阻塞。了解回调函数作为处理异步结果的传统方式,以及可能导致的回调地狱问题。
    • 实践: 使用 setTimeout 模拟一个异步操作,并使用回调函数处理结果。观察回调地狱的示例代码。
    • (长休息: 15-30分钟)
  • 第5个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: Promise 基础 - 概念与状态。
    • 内容: 学习 Promise 是什么 (一个表示异步操作最终完成或失败的对象)。理解其三种状态: pending (进行中), fulfilled (已成功), rejected (已失败)。
    • 实践: 创建一个简单的 Promise 对象,手动将其状态改变为 fulfilled 或 rejected。
  • 第6个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: Promise 基础 - .then(), .catch(), .finally()
    • 内容: 学习如何使用 .then() 处理 Promise 成功的结果 (和链式调用),.catch() 处理失败的结果,.finally() 执行无论成功失败都会执行的代码。
    • 实践: 封装一个返回 Promise 的异步函数 (例如使用 setTimeout),然后使用 .then().catch() 处理。

Day 15: Async/Await 与 ES Modules 模块化

  • 第1个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: async 函数。
    • 内容: 学习 async 关键字如何让一个函数隐式返回一个 Promise。
    • 实践: 将一个普通函数改写为 async 函数,观察其返回值。
  • 第2个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: await 操作符。
    • 内容: 学习 await 如何暂停 async 函数的执行,等待一个 Promise 完成,并返回其结果。await 只能在 async 函数内部使用。
    • 实践: 结合上一天封装的返回 Promise 的函数,使用 async/await 来获取其结果,对比 .then() 的写法。
  • 第3个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: async/await 中的错误处理。
    • 内容: 学习如何使用 try...catch 语句捕获 await 后面 Promise 的 rejection。
    • 实践: 修改 Promise 使其被 reject,然后使用 try...catch 捕获错误。
  • 第4个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 模块化 (ES Modules) - 概念与 export
    • 内容: 理解为什么需要模块化。学习如何使用 export 关键字导出变量、函数、类 (命名导出和默认导出 export default)。
    • 实践: 创建一个 .js 文件 (math.js),在其中定义一些函数和变量,并使用 exportexport default 导出它们。
    • (长休息: 15-30分钟)
  • 第5个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: 模块化 (ES Modules) - import
    • 内容: 学习如何使用 import 关键字从其他模块导入内容 (命名导入、默认导入、整体导入)。
    • 实践: 创建另一个 .js 文件 (main.js),从 math.js 中导入之前导出的内容,并使用它们。在 HTML 中通过 <script type="module" src="main.js"></script> 引入。
  • 第6个番茄钟 (25分钟学习 + 5分钟休息):
    • 主题: JavaScript 核心回顾与练习。
    • 内容: 快速回顾 Day 9 - Day 15 的核心概念,特别是 ES6+ 语法、Promise、async/await 和模块化。
    • 实践: 尝试将之前写的一些小程序用 ES6+ 语法和模块化方式进行重构。或者找一些在线的 ES6+ 练习题进行巩固。

相关文章:

  • STM32 ADC+DMA+TIM触发采样实战:避坑指南与源码解析
  • 如何有效的开展接口自动化测试?
  • 面试题:详细分析Arraylist 与 LinkedList 的异同
  • 【Spring AI】本地大模型接入MCP实现联网搜索
  • 综合项目:博客
  • Python之三大基本库——Matplotlib
  • 对称二叉树的判定:双端队列的精妙应用
  • 源码:处理文件格式和字符集的相关代码(3-3)
  • Spring WebFlux与Quarkus实战:云原生微服务开发的两大主流框架深度解析
  • 一分钟了解机器学习
  • Linux系统启动相关:vmlinux、vmlinuz、zImage,和initrd 、 initramfs,以及SystemV 和 SystemD
  • 割点与其例题
  • 消防应急处置管理的全流程概述
  • NLP双雄争霸:GPT与BERT的生成-理解博弈——从技术分野到产业融合的深度解码
  • C++:单例模式
  • 【数据仓库面试题合集①】数据建模高频面试题及解析
  • 索恩格汽车SEG Automotive EDI 需求分析
  • Unity3D 游戏编程内存优化技巧
  • linux下tcp/ip网络通信笔记1,
  • Android 中 显示 PDF 文件内容(AndroidPdfViewer 库)
  • 湖南慈利一村干部用AI生成通知并擅自发布,乡纪委立案
  • 马上评|家长抱婴儿值护学岗,如何避免“被自愿”?
  • 混乱的5天:俄乌和谈如何从充满希望走向“卡壳”
  • 上海市税务局:收到对刘某某存在涉税问题的举报,正依法依规办理
  • 商务部:中方敦促美方尽快停止232关税措施
  • 缅甸内观冥想的历史漂流:从心理治疗室到“非语言现场”