学习现代 JavaScript 编程的最佳教程
天天编码 , 版权所有丨本文标题:0.0 学习现代 JavaScript 编程的最佳教程
转载请保留页面地址:http://www.tiantianbianma.com/the-modern-javascript-tutorial.html/
PART 1: JavaScript 语言
在此部分,我们将学习 JavaScript 语言,从零开始,一步一步,逐步掌握像面向对象编程(OOP)这样的高级功能。
此处,我们将专注于 JavaScript 语言本身,不会涉及太多关于特定运行环境的知识点。
JavaScript 简介
- 1.1 JavaScript 简介
- 1.2 代码编辑器
- 1.3 开发者控制台
JavaScript 基础
- 2.1 Hello,world!
- 2.2 代码结构
- 2.3 “use strict”
- 2.4 变量
- 2.5 数据类型
- 2.6 类型转换
- 2.7 操作符
- 2.8 比较
- 2.9 交互:alert,prompt,confirm
- 2.10 条件操作符:if,’?’
- 2.11 逻辑操作符
- 2.12 循环: while 和 for
- 2.13 “switch” 语句
- 2.14 函数
- 2.15 函数表达式和箭头
- 2.16 JavaScript 特性
代码质量
- 3.1 Chrome 调试
- 3.2 编码风格
- 3.3 代码注释
- 3.4 忍者代码
- 3.5 mocha 自动测试
- 3.6 垫片(Polyfill)
对象:基础
- 4.1 对象
- 4.2 垃圾回收
- 4.3 符号类型
- 4.4 对象方法,”this”
- 4.5 对象转原始类型
- 4.6 构造器,”new” 操作符
数据类型
- 5.1 原始类型的方法
- 5.2 数值
- 5.3 字符串
- 5.4 数组
- 5.5 数组方法
- 5.6 可迭代
- 5.7 Map,Set,WeakMap 和 WeakSet
- 5.8 Object.keys, values, entries
- 5.9 拆解赋值
- 5.10 日期与时间
- 5.11 JSON 方法,toJSON
函数:高级特性
- 6.1 递归和堆栈
- 6.2 Rest 参数和 spread 操作符
- 6.3 闭包(Closure)
- 6.4 旧语法:”var”
- 6.5 全局对象
- 6.6 函数对象,NFE
- 6.7 “new Function”
- 6.8 排程:setTimeout and setInterval
- 6.9 装饰者和转发,call/apply
- 6.10 函数绑定
- 6.11 疑难杂症
- 6.12 再谈箭头函数
对象,类,继承
- 7.1 属性标记和描述符
- 7.2 属性 getter和setter
- 7.3 属性继承
- 7.4 F.prototype
- 7.5 原生属性
- 7.6 原型方法
- 7.7 类模式
- 7.8 类
- 7.9 类继承,super
- 7.10 类检查:”instanceof”
- 7.11 混入(Mixins)
错误处理
- 8.1 错误处理:”try..catch”
- 8.2 定制错误,扩展错误
以下内容正在创建中,敬请期待。
以下内容正在创建中,敬请期待。
以下内容正在创建中,敬请期待。
PART 2: 浏览器:文档,事件,界面
学习如何管理浏览器的页面:添加元素,控制它们的大小和位置,动态创建页面和与用户进行交互。
文档(Document)
- 1.1 浏览器环境,规范
- 1.2 文档树
- 1.3 遍历文档
- 1.4 搜索:getElement 和 querySelector
- 1.5 节点属性:类型,标签和内容
- 1.6 Attributes 和 properties
- 1.7 修改文档
- 1.8 Styles 和 classes
- 1.9 元素大小和滚动
- 1.10 窗口大小和滚动
- 1.11 坐标系
事件简介
事件细节
- 3.1 鼠标事件
- 3.2 移动:mouseover/out,mouseenter/leave
- 3.3 拖动的鼠标事件
- 3.4 键盘:keydown 和 keyup
- 3.5 滚动
- 3.6 页面的生命周期:DOMContentLoaded,load,beforeunload,unload
- 3.7 资源下载:onload 和 onerror
表格(Form),控制(control)
- 4.1 表格属性和方法
- 4.2 聚焦:focus/blur
- 4.3 事件:change,input,cut,copy,paste
- 4.4 表格提交:事件和方法提交
PART 3: 延伸资料
此部分列举了与本教程密切相关,但是又没有包含在以上两个部分的大量优秀的相关资料。当然,这些资料之间没有必然的层次或先后顺序,读者可以按照自己喜欢的方式随意浏览。
动画(Animation)
- 1.1 Bezier curve
- 1.2 CSS 动画
- 1.3 JavaScript 动画
多窗口页面和窗口(Frames and windows)
正则表达式
- 3.1 模式和标记
- 3.2 正则表达式和字符串的方法
- 3.3 字符类
- 3.4 转义符,特殊字符
- 3.5 Sets 和 ranges
- 3.6 Unicode 标记
- 3.7 量词:+,*,?和{n}
- 3.8 贪婪和懒惰模式
- 3.9 扑获组
- 3.10 Backreferences:\n 和 $n
- 3.11 Alternation(OR)
- 3.12 起始符”^” 和结束符”$”
- 3.13 多行模式,”m”
- 3.14 前瞻算法
- 3.15 无限回溯问题
Promises,async/await
- 4.1 简介:回调
- 4.2 Promise
- 4.3 Promises 链
- 4.4 Promise API
- 4.5 Async/await
学习现代 JavaScript 编程的最佳教程的更多相关文章
- javascript编程的最佳实践推荐
推荐的javascript编程的最佳实践,摘要记录在这里: 可维护的代码保证代码的性能部署代码 1 可维护的代码1.1什么是维护的代码:可理解性——其他人可以接手代码并理解它的意图和一般途径,而无需原 ...
- -高级Javascript编程学习笔记----Javascript编程及架构设计最应该注意的基本点
最小全局变量 JavaScript通过函数管理作用域.在函数内部生命的变量只在这个函数内部,别的地方不可用.全局变量是指在函数外或是未声明直接简单使用的.每个Javascipt环境有一个全局对象,当你 ...
- Shell高级编程视频教程-跟着老男孩一步步学习Shell高级编程实战视频教程
Shell高级编程视频教程-跟着老男孩一步步学习Shell高级编程实战视频教程 教程简介: 本教程共71节,主要介绍了shell的相关知识教程,如shell编程需要的基础知识储备.shell脚本概念介 ...
- 7个在线学习C++编程的最佳途径
7个在线学习C++编程的最佳途径 jopen 2012-09-27 15:51:13 • 发布 摘要:C++是一种静态数据类型检查的.支持多重编程范式的通用程序设计语言.它支持过程化程序设计.数据抽象 ...
- 学习笔记(三)--->《Java 8编程官方参考教程(第9版).pdf》:第十章到十二章学习笔记
回到顶部 注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法 ...
- 学习笔记(二)--->《Java 8编程官方参考教程(第9版).pdf》:第七章到九章学习笔记
注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法者自负一切 ...
- 学习笔记(一)--->《Java 8编程官方参考教程(第9版).pdf》:第一章到六章学习笔记
注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.违者本人不负法律责任.违法者自负一切法律责任. ...
- 实践javascript美术馆的小案例,学习到的东西还是蛮多的,包括javascript编程中的预留退路、分离javascript、以及实现向后兼容等
javascript美术馆(改进2) 一.javascript编程过程中的好习惯 1.实现预留退路 js被禁掉,图片也可以显示出来,href属性带有图片路径 <script src=" ...
- 【推荐分享】大量JavaScript/jQuery电子书籍教程pdf合集下载
不收藏是你的错^_^. 经证实,均可免费下载. 资源名称 资源大小 15天学会jQuery(完整版).pdf 274.79 KB 21天学通JavaScript(第2版)-顾宁燕扫描版.pdf ...
随机推荐
- grep废弃
grep -inrw 字符串 .grep -i是忽略大小写的意思cat xxx|grep -i mem 会把文本里的MEM,meM.....等无关乎大小写的内容取出来grep -inrwgrep &q ...
- Java面试题[转载]
目录 转载 简历篇 请自我介绍 请介绍项目 基础篇 基本功 面向对象的特征 final, finally, finalize 的区别 int 和 Integer 有什么区别 重载和重写的区别 抽象类和 ...
- Hadoop记录-切换NN
一.第一种方法 重启namenode(1.1.1.1 1.1.1.2)重启standby节点:1.1hadoop-daemon.sh stop zkfchadoop-daemon.sh stop na ...
- Linux工具安装和常用配置
1 常用开发工具安装 1 安装Mysql ①基本安装 wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm: s ...
- JGUI源码:实现蒙版层显示(18)
有的时候需要显示一个蒙版层,蒙版层显示的主要原理是在指定元素比如div上创建一个子元素div,设置absolute.宽高100%.设置z-index置于顶层,设置半透明效果,fadein,fadeou ...
- antd table 点击行触发radio 或 checkbox
UIStore.ts (使用mobx) 1 import { observable, action, computed } from 'mobx' export class UIStore { @o ...
- iTOP-i.MX6Q开发板支持安卓Android6.0系统
迅为IMX6开发板: Android4.4/6.0系统 Linux + Qt5.7系统 Ubuntu12.04系统 部分案例:HMI:3D打印机:医疗设备:工控机:触控一体机:车载终端 核心板兼容 ...
- 微信小程序注意点与快捷键
注意点1. 微信对小程序的要求是整体大小不能超过1MB. 2. .json 是配置文件,其内容必须符合JSON格式,所以文件内部不允许有注释. 3. app.json 是全局配置文件,微信小程序中的每 ...
- 【作业4.0】HansBug的第四次面向对象课程思考
嘛..不知不觉这门课程要结束了,那么就再说点啥以示庆祝呗. 测试vs正确性论证 说到这个,相比很多人对此其实很有疑惑,请让我慢慢分析. 逻辑概览 首先我们来看看两种方式各自的做法和流程是什么样的: 单 ...
- mysql性能优化分析 --- 上篇
概要 之前看过<高性能mysql>对mysql数据库有了系统化的理解,虽然没能达到精通,但有了概念,遇到问题时会有逻辑条理的分析; 问题 问题:公司xxx页面调用某个接口时,loading ...