学习现代 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 ...
随机推荐
- python学习day19 面向对象(一)封装/多态/继承
面向对象 封装思想:将同一类的函数函数封装到同一个py文件中,方便调用 面向对象也有封装的作用,将同一类的函数封装到一个类中 多态(鸭子模型):多种类型/多种形态 #,什么事鸭子模型 对于一个函数,p ...
- hyper发送表单数据
前言 某个美丽的下午,运维把服务器上的nginx升级了,http协议也变成了http2.0,我本地的requests再也连接不到服务器,然后就找到了额hyper 但是hyper的文档写的很简单,而且相 ...
- 快速理解js中的call,apply的作用
今天被人问到js中的call,apply的区别和用途,解释了一番后,想到之前在逼乎上看到一位小伙伴生动形象的解释 本身不难理解,看下MDN就知道了,但是不常用,遇到了,还要脑回路回转下.或者时间长了, ...
- django上传图片简单验证以及自动修改图片名称
django实现文件(图片)上传之后自动修改名称以及页面上传图片时的各种提醒: 1.先在你项目中添加一个文件夹如:system 在文件夹下添加__init__.py 和storage.py文件,并在s ...
- 浅谈Kubernetes生产架构
注意本文,只是笔者针对Kubernetes生产环境运行的一些关于架构设计和实现方案的总结,内容很粗糙,同时也会不断完善. 首先,我们来梳理下Kubernetes生产架构,其设计适用于绝大多数环境.如下 ...
- 微信小程序 TLS 版本必须大于等于1.2问题解决
微信小程序 TLS 版本必须大于等于1.2问题解决 此问题最近在微信小程序开发中,比较常见. 在解决这个问题之前,我们需要了解一下,当前的系统环境是否支持TLS1.2以上,可以参考一下表格: 确认系 ...
- css中自定义字体
css代码如下: @font-face { font-family: 'HelveticaNeueLTPro-Th'; src: url('../fonts/HelveticaNeueLTPro-Th ...
- CSS 分栏结构
CSS 固定左侧导航栏 left----左侧菜单 cont -- 实际内容 right ---右侧附加内容 两栏布局---左侧高度为内容撑开的高度 方法一:[坏处是需要 float] ...
- 隧道6in4 和隧道6to4(GNS3)
隧道6in4实验配置 拓扑图 Device Interface IP Address(IPv6) R1 F 0/0 10.1.81.1 F 0/1 2001:db8:cafe:81::10 R2 F ...
- 错误:org.springframework.jdbc.support.SQLErrorCodesFactory - SQLErrorCodes loaded
使用spring+mybatis整合时报错:org.springframework.jdbc.support.SQLErrorCodesFactory - SQLErrorCodes loaded 错 ...