- JS基础Day1-00-JavaScript核心与进阶课程安排
- JS基础Day1-01-必看-基本软件以及准备工作
- JS基础Day1-02-JavaScript简介和体验
- JS基础Day1-03-JavaScript书写位置
- JS基础Day1-04-JavaScript注释和结束符
- JS基础Day1-05-js输入和输出语句和字面量
- JS基础Day1-06-变量的声明和赋值
- JS基础Day1-07-变量的更新以及输入用户名案例
- JS基础Day1-08-交互两个变量案例
- JS基础Day1-09-变量的本质和命名规则
- JS基础Day1-10-输入姓名案例以及var和let区别
- JS基础Day1-11-数组的基本使用
- JS基础Day1-12-常量
- JS基础Day1-13-数字数据类型和算术运算符
- JS基础Day1-14-字符串数据类型以及拼接
- JS基础Day1-15-模板字符串
- JS基础Day1-16-布尔型、null和undefined以及类型检测
- JS基础Day1-17-隐式转换和显示转换
- JS基础Day1-18-综合案例-渲染表格案例以及作业
- JS基础Day2-19-赋值运算符
- JS基础Day2-20-自增运算符
- JS基础Day2-21-比较运算符
- JS基础Day2-22-逻辑运算符以及优先级
- JS基础Day2-23-if单分支语句以及判断成绩案例
- JS基础Day2-24-if双分支语句以及判断闰年案例
- JS基础Day2-25-if多分支语句以及上午总结
- JS基础Day2-26-三元运算符以及求最大值案例
- JS基础Day2-27-数字补0案例
- JS基础Day2-28-switch分支语句
- JS基础Day2-29-断点调试
- JS基础Day2-30-while循环
- JS基础Day2-31-while循环大练习
- JS基础Day2-32-退出循环以及你爱我吗案例
- JS基础Day2-33-综合案例-简易ATM取款机案例以及作业
- JS基础Day3-34-for循环以及案例
- JS基础Day3-35-遍历数组
- JS基础Day3-36-退出循环
- JS基础Day3-37-循环嵌套
- JS基础Day3-38-循环嵌套大练习
- JS基础Day3-39-99乘法表案例
- JS基础Day3-40-数组的基本使用以及案例
- JS基础Day3-41-求数组最大值和最小值
- JS基础Day3-42-数组操作-修改
- JS基础Day3-43-数组操作-新增
- JS基础Day3-44-数组筛选案例
- JS基础Day3-45-数组操作-删除
- JS基础Day3-46-综合案例-渲染柱形图案例上
- JS基础Day3-47-综合案例-渲染柱形图案例下
- JS基础Day3-48-了解冒泡排序和作业安排
- JS基础Day4-49-函数的基本使用以及封装练习
- JS基础Day4-50-函数的参数以及默认参数
- JS基础Day4-51-函数封装数组求和案例
- JS基础Day4-52-函数返回值return
- JS基础Day4-53-函数返回值细节以及上午总结
- JS基础Day4-54-函数返回值案例-求最大值和最小值
- JS基础Day4-55-函数复习以及断点进入函数
- JS基础Day4-56-作用域
- JS基础Day4-57-变量的访问原则
- JS基础Day4-58-匿名函数之函数表达式
- JS基础Day4-59-匿名函数之立即执行函数
- JS基础Day4-60-综合案例-封装计算时间函数
- JS基础Day4-61-逻辑中断
- JS基础Day4-62-转换为布尔型以及作业
- JS基础Day5-63-今日内容和实战安排
- JS基础Day5-64-什么是对象以及基本使用
- JS基础Day5-65-对象的操作-增删改
- JS基础Day5-66-对象的操作-查的两种方法
- JS基础Day5-67-对象的方法
- JS基础Day5-68-遍历对象
- JS基础Day5-69-渲染学生信息表案例
- JS基础Day5-70-数学内置对象
- JS基础Day5-71-随机数函数
- JS基础Day5-72-随机点名案例
- JS基础Day5-73-猜数字游戏
- JS基础Day5-74-随机颜色案例
- JS基础Day5-75-综合案例-渲染学成在线案例
- JS基础Day5-76-简单和引用数据类型以及作业
- APIs-day1-77-web APIs阶段课程安排
- APIs-day1-78-声明变量const优先
- APIs-day1-79-DOM树和DOM对象
- APIs-day1-80-获取DOM元素
- APIs-day1-81-DOM修改元素内容以及年会抽奖案例
- APIs-day1-82-DOM修改元素常见属性以及案例
- APIs-day1-83-通过style修改样式属性
- APIs-day1-84-通过类名修改样式
- APIs-day1-85-通过classList修改样式
- APIs-day1-86-随机轮播图案例-上
- APIs-day1-87-随机轮播图案例-下
- APIs-day1-88-获取设置表单的值
- APIs-day1-89-H5自定义属性-data
- APIs-day1-90-定时器-间歇函数
- APIs-day1-91-用户倒计时效果
- APIs-day1-92-综合案例-轮播图定时版
- APIs-day2-93-事件监听以及案例
- APIs-day2-94-随机点名案例
- APIs-day2-95-事件监听版本以及鼠标事件
- APIs-day2-96-轮播图完整版-上集
- APIs-day2-97-轮播图完整版-下集
- APIs-day2-98-焦点事件以及小米搜索框案例
- APIs-day2-99-键盘事件以及发布评论案例
- APIs-day2-100-事件对象event以及常见属性
- APIs-day2-101-回车发布评论案例
- APIs-day2-102-环境对象this以及回调函数
- APIs-day2-103-今日综合案例-tab切换
- APIs-day3-104-表单全选反选案例
- APIs-day3-105-事件流、事件捕获、事件冒泡以及阻止冒泡
- APIs-day3-106-事件解绑、mouseover和mouseenter的区别
- APIs-day3-107-事件委托
- APIs-day3-108-事件委托版本tab栏切换
- APIs-day3-109-阻止元素默认行为
- APIs-day3-110-页面加载事件和页面滚动事件
- APIs-day3-111-小兔鲜显示导航和返回顶部案例
- APIs-day3-112-client家族和offset家族
- APIs-day3-113-仿京东滑动以及bilibili导航滑动案例
- APIs-day3-114-综合案例-电梯导航案例上集
- APIs-day3-115-综合案例-电梯导航案例下集
- APIs-day4-116-日期对象的使用
- APIs-day4-117-时间戳的使用
- APIs-day4-118-倒计时案例的制作
- APIs-day4-119-查找DOM节点
- APIs-day4-120-增加节点以及学成在线案例
- APIs-day4-121-克隆节点和删除节点
- APIs-day4-122-M端事件
- APIs-day4-123-swiper插件的使用
- APIs-day4-124-今日综合案例-学生信息表上集
- APIs-day4-125-今日综合案例-学生信息表下集
- APIs-day5-126-BOM和延迟函数setTimeout
- APIs-day5-127-事件循环eventloop
- APIs-day5-128-location对象
- APIs-day5-129-navigator对象和histroy对象
- APIs-day5-130-本地存储localstorage
- APIs-day5-131-本地存储处理复杂数据类型
- APIs-day5-132-综合案例-读取本地存储数据
- APIs-day5-133-数组map和join方法
- APIs-day5-134-综合案例-渲染模块制作
- APIs-day5-135-综合案例-录入模块制作
- APIs-day5-136-综合案例-删除模块制作以及学号处理
- APIs-day6-137-正则表达式使用
- APIs-day6-138-元字符之边界符
- APIs-day6-139-元字符之量词
- APIs-day6-140-元字符之字符类
- APIs-day6-141-预定义类以及修饰符和替换
- APIs-day6-142-今日综合案例-注册页面-短信验证码模块
- APIs-day6-143-今日综合案例-注册页面-验证用户名模块
- APIs-day6-144-综合案例-注册页面-验证手机号和密码框模块
- APIs-day6-145-综合案例-注册页面-我同意模块以及全部提交验证
- APIs-day6-146-阶段案例-登录页制作
- APIs-day6-147-阶段案例-首页制作
- APIs-day7-148-实战案例-放大镜效果-鼠标经过盒子制作
- APIs-day7-149-实战案例-放大镜效果-鼠标经过中等盒子制作
- APIs-day7-150-实战案例-放大镜效果-大盒子放大效果制作
- JS进阶-day1-151-JavaScript进阶阶段安排
- JS进阶-day1-152-作用域和作用域链
- JS进阶-day1-153-JS垃圾回收机制以及算法
- JS进阶-day1-154-JS闭包
- JS进阶-day1-155-变量和函数提升
- JS进阶-day1-156-函数剩余参数和展开运算符
- JS进阶-day1-157-ES6箭头函数的使用
- JS进阶-day1-158-数组解构
- JS进阶-day1-159-对象解构
- JS进阶-day1-160-forEach遍历数组
- JS进阶-day1-161-渲染商品案例
- JS进阶-day1-162-综合案例-筛选商品案例
- JS进阶-day2-163-今日内容和创建对象方式
- JS进阶-day2-164-构造函数
- JS进阶-day2-165-new 实例化执行过程
- JS进阶-day2-166-实例成员和静态成员
- JS进阶-day2-167-基本包装类型
- JS进阶-day2-168-Object静态方法
- JS进阶-day2-169-数组reduce累计方法
- JS进阶-day2-170-数组find、every和转换为真数组
- JS进阶-day2-171-字符串常见方法
- JS进阶-day2-172-渲染赠品案例
- JS进阶-day2-173-综合案例-购物车案例渲染数据
- JS进阶-day2-174-综合案例-购物车案例数据处理模块
- JS进阶-day2-175-综合案例-购物车案例合计模块
- JS进阶-day3-176-今日内容和两种编程思想
- JS进阶-day3-177-构造函数实现封装以及存在的问题
- JS进阶-day3-178-原型对象prototype
- JS进阶-day3-179-数组扩展案例-求最大值和数组求和
- JS进阶-day3-180-constructor属性以及应用
- JS进阶-day3-181-对象原型__proto__
- JS进阶-day3-182-原型继承
- JS进阶-day3-183-原型链以及instanceof运算符
- JS进阶-day3-184-综合案例-模态框构造函数写法
- JS进阶-day3-185-综合案例-open方法封装
- JS进阶-day3-186-综合案例close封装以及小结
- JS进阶-day4-187-今日内容和浅拷贝
- JS进阶-day4-188-递归函数
- JS进阶-day4-189-深拷贝实现
- JS进阶-day4-190-利用lodash和JSON实现深拷贝
- JS进阶-day4-191-异常处理-throw和try、catch以及debugger
- JS进阶-day4-192-普通函数和箭头函数的this
- JS进阶-day4-193-call方法改变this指向
- JS进阶-day4-194-apply方法
- JS进阶-day4-195-bind方法以及总结
- JS进阶-day4-196-什么是防抖以及底层实现
- JS进阶-day4-197-什么是节流以及底层实现和总结
- JS进阶-day4-198-节流综合案例-记录视频播放时间
- JavaScript核心与进阶大结局
JavaScript是一种非常强大和灵活的编程语言,它可以让你的网页变得更加动态和交互性。但是,学习JavaScript对许多人来说似乎充满了混乱和挫折感。这是因为JavaScript涉及了许多抽象和复杂的概念,而且有着广泛和多样的内容:
抽象性和晦涩性: JavaScript涉及抽象概念,如闭包、内置对象和DOM,这些概念可能让初学者感到困惑。
广泛的内容: JavaScript拥有大量的函数库和对象库,初学者可能感到不知从何学起。
多编程思想混合: JavaScript不仅涵盖了面向过程编程思想,还包括面向对象编程思想,而且与其他编程语言(如C++、Java、PHP)的面向对象编程有所不同,这可能导致混淆和怀疑。
理论与实践脱节: 学习了JavaScript的基础知识后,许多人可能在实际项目中感到不知所措。
如果你想要系统地学习JavaScript,你需要有一个清晰的学习目标、路线和方法。小狮妹将为你提供一些学习JavaScript的建议,帮助你从基础到实战,掌握这门编程语言。
明确JavaScript的战略定位
在开始学习JavaScript之前,你需要明确你的学习目标。不要只把JavaScript看作是一门编程语言,而是要理解它在Web开发中的核心作用。JavaScript主要用于操控和调整DOM(文档对象模型),通过修改DOM结构来改变页面效果。
例如,你可以用JavaScript来实现轮播图、下拉菜单、弹出窗口等功能。将这一概念作为指导思想,有助于建立清晰的学习方向。
制定清晰的学习路线
建立一条明确的学习路线,可以让你有条不紊地学习JavaScript。以下是一个分阶段的学习路线:
学习JavaScript基础知识:这是学习JavaScript的第一步,也是最重要的一步。你需要掌握JavaScript的基本语法、数据类型、变量、函数、数组、字符串等概念,以及内置函数和对象,如Math、Date、String等。这些知识是后续学习的基础,也是编写代码的必备工具。
掌握面向过程编程思想:面向过程编程思想是一种将程序分解为一系列步骤或过程的方法,每个过程都有明确的输入和输出。这种思想适合用于实现一些简单而明确的功能,如选项卡、自定义多选按钮、自定义播放器、3D幻灯片等。你可以尝试使用面向过程编程思想创建这些小功能,并熟悉JavaScript的流程控制、事件处理、DOM操作等技巧。
理解面向对象编程思想:面向对象编程思想是一种将程序分解为一系列对象的方法,每个对象都有自己的属性和方法。这种思想适合用于实现一些复杂而抽象的功能,如游戏、动画、图形等。你需要理解JavaScript中的对象、原型、继承等概念,并尝试封装自己的对象并提供有意义的接口。
学习常用库:库是一组封装了常用功能或特效的代码集合,可以让你更方便地使用JavaScript。其中最常用的库就是jQuery,它可以让你更简洁地操作DOM、处理事件、实现动画等效果。你需要熟悉jQuery的基本语法和常用方法,并了解它与原生JavaScript之间的区别和联系。
探索基于jQuery的常见插件:插件是一种基于库的扩展,可以让你更快速地实现一些常见的功能或特效,如轮播图、弹出层、富文本编辑器等。你需要了解如何使用这些插件,并根据自己的需求进行定制和优化。
将所学综合应用于实际项目:这是学习JavaScript的最后一步,也是最有挑战性的一步。你需要将你所学的知识和技能综合应用于实际项目中,如网站、应用、小游戏等。你可以多写模板代码,多练习,多总结,不断提高自己的编程水平和能力。
学习方法的重要性
除了明确学习路线,好的学习方法也至关重要。以下是一些学习方法的建议:
阅读国外的JavaScript书籍:国外的JavaScript书籍通常比国内的更加深入和全面,可以让你更好地理解JavaScript的本质和原理。但是,不要选择那些承诺“20天精通”的书籍,它们往往只是浮于表面,没有深入探讨。你可以选择一些经典和权威的书籍,如《JavaScript高级程序设计》、《JavaScript权威指南》、《你不知道的JavaScript》等,并多次练习书中的功能,逐渐掌握。
从不同角度学习和理解JavaScript:JavaScript是一种多范式的编程语言,它不仅涵盖了面向过程编程思想,还包括面向对象编程思想,而且与其他编程语言(如C++、Java、PHP)的面向对象编程有所不同。这可能导致混淆和怀疑。你需要从不同角度学习和理解JavaScript,尝试使用不同编程思想解决相同的问题,并将所学知识应用于实际项目中。
不要急于追求高级内容,重要的是内化所学:JavaScript有着丰富和深邃的内容,你可能会被吸引到一些高级和前沿的内容,如ES6、TypeScript、React、Vue等。但是,如果你没有掌握好基础知识,这些内容只会让你感到困惑和沮丧。你需要按照学习路线逐步学习,并不断巩固和内化所学。不要放过任何练习的机会,即使是小的项目也要认真对待。
不断关注网络上出现的优秀功能效果,模仿并将它们融入学习中:网络上有着许多优秀的网站和应用,它们展示了JavaScript的强大和魅力。你可以关注这些功能效果,并尝试模仿并改进它们。这样可以让你更有动力和兴趣学习JavaScript,并且可以拓展你的视野和思维。
编写总结,包括源代码、效果截图、常见错误及解决方法,以及简洁的结论性语句:编写总结是一种很好的学习方法,它可以让你回顾和反思自己的学习过程,并提高自己的表达能力。你可以在每个阶段或每个项目后编写总结,并包括以下内容:
源代码:展示你编写的代码,并注释清楚每个部分的作用。
效果截图:展示你实现的功能或特效,并说明它们与原始需求或设计的差异和优势。
常见错误及解决方法:列出你在编写代码过程中遇到的常见错误,以及你是如何解决或避免的。
简洁的结论性语句:总结你在这个阶段或项目中学到了什么,以及你对JavaScript的理解和感受。
构建知识导图,以帮助更清晰地理解和组织所学内容:知识导图是一种将知识以图形化的方式呈现的方法,它可以让你更直观地看到知识之间的关联和层次。你可以使用一些在线工具,如XMind、MindMeister等,来构建JavaScript的知识导图,并定期更新和完善。这样可以让你更有系统地学习JavaScript,并加深记忆和理解。
