https://zh.javascript.info/https://zh.javascript.info/

现代 JavaScript 教程

以最新的 JavaScript 标准为基准。通过简单但足够详细的内容,为你讲解从基础到高阶的 JavaScript 相关知识。

搜索

最后修改在 18日 一月 2022

购买EPUB/PDF

分享:

5854 ★githubWeChat 和 QQ

目录

课程的核心内容包含 2 部分,涵盖了 JavaScript 编程语言相关知识和浏览器行为。此外还有一系列的专题文章。

第 一 部分JavaScript 编程语言第 二 部分浏览器:文档,事件,接口第 三 部分其他文章

JavaScript 编程语言

在这儿我们将从头开始学习 JavaScript,也会学习 OOP 等相关高级概念。

本教程专注于语言本身,我们默认使用最小环境。

简介

  • JavaScript 简介

  • 手册与规范

  • 代码编辑器

  • 开发者控制台

JavaScript 基础知识

  • Hello, world!

  • 代码结构

  • 现代模式,"use strict"

  • 变量

  • 数据类型

  • 交互:alert、prompt 和 confirm

  • 类型转换

  • 基础运算符,数学

  • 值的比较

  • 条件分支:if 和 '?'

  • 逻辑运算符

  • 空值合并运算符 '??'

  • 循环:while 和 for

  • "switch" 语句

  • 函数

  • 函数表达式

  • 箭头函数,基础知识

  • JavaScript 特性

代码质量

  • 在浏览器中调试

  • 代码风格

  • 注释

  • 忍者代码

  • 使用 Mocha 进行自动化测试

  • Polyfill 和转译器

Object(对象):基础知识

  • 对象

  • 对象引用和复制

  • 垃圾回收

  • 对象方法,"this"

  • 构造器和操作符 "new"

  • 可选链 "?."

  • Symbol 类型

  • 对象 — 原始值转换

数据类型

  • 原始类型的方法

  • 数字类型

  • 字符串

  • 数组

  • 数组方法

  • Iterable object(可迭代对象)

  • Map and Set(映射和集合)

  • WeakMap and WeakSet(弱映射和弱集合)

  • Object.keys,values,entries

  • 解构赋值

  • 日期和时间

  • JSON 方法,toJSON

函数进阶内容

  • 递归和堆栈

  • Rest 参数与 Spread 语法

  • 变量作用域,闭包

  • 旧时的 "var"

  • 全局对象

  • 函数对象,NFE

  • "new Function" 语法

  • 调度:setTimeout 和 setInterval

  • 装饰器模式和转发,call/apply

  • 函数绑定

  • 深入理解箭头函数

对象属性配置

  • 属性标志和属性描述符

  • 属性的 getter 和 setter

原型,继承

  • 原型继承

  • F.prototype

  • 原生的原型

  • 原型方法,没有 __proto__ 的对象

  • Class 基本语法

  • 类继承

  • 静态属性和静态方法

  • 私有的和受保护的属性和方法

  • 扩展内建类

  • 类检查:"instanceof"

  • Mixin 模式

错误处理

  • 错误处理,"try..catch"

  • 自定义 Error,扩展 Error

Promise,async/await

  • 简介:回调

  • Promise

  • Promise 链

  • 使用 promise 进行错误处理

  • Promise API

  • Promisification

  • 微任务(Microtask)

  • Async/await

Generator,高级 iteration

  • Generator

  • 异步迭代和 generator

模块

  • 模块 (Module) 简介

  • 导出和导入

  • 动态导入

杂项

  • Proxy 和 Reflect

  • Eval:执行代码字符串

  • 柯里化(Currying)

  • Reference Type

  • BigInt

浏览器:文档,事件,接口

学习如何管理浏览器页面:添加元素,操纵元素的大小和位置,动态创建接口并与访问者互动。

Document

  • 浏览器环境,规格

  • DOM 树

  • 遍历 DOM

  • 搜索:getElement*,querySelector*

  • 节点属性:type,tag 和 content

  • 特性和属性(Attributes and properties)

  • 修改文档(document)

  • 样式和类

  • 元素大小和滚动

  • Window 大小和滚动

  • 坐标

事件简介

  • 浏览器事件简介

  • 冒泡和捕获

  • 事件委托

  • 浏览器默认行为

  • 创建自定义事件

UI 事件

  • 鼠标事件

  • 移动鼠标:mouseover/out,mouseenter/leave

  • 鼠标拖放事件

  • 指针事件

  • 键盘:keydown 和 keyup

  • 滚动

表单,控件

  • 表单属性和方法

  • 聚焦:focus/blur

  • 事件:change,input,cut,copy,paste

  • 表单:事件和方法提交

加载文档和其他资源

  • 页面生命周期:DOMContentLoaded,load,beforeunload,unload

  • 脚本:async,defer

  • 资源加载:onload,onerror

杂项

  • DOM 变动观察器(Mutation observer)

  • 选择(Selection)和范围(Range)

  • 事件循环:微任务和宏任务

其他文章

教程的前两部分未涉及的其他主题的内容列表。此处没有明确的层次结构,你可以按你需要的顺序阅读文章。

Frame 和 window

  • 弹窗和 window 的方法

  • 跨窗口通信

  • 点击劫持攻击

二进制数据,文件

  • ArrayBuffer,二进制数组

  • TextDecoder 和 TextEncoder

  • Blob

  • File 和 FileReader

网络请求

  • Fetch

  • FormData

  • Fetch:下载进度

  • Fetch:中止(Abort)

  • Fetch:跨源请求

  • Fetch API

  • URL 对象

  • XMLHttpRequest

  • 可恢复的文件上传

  • 长轮询(Long polling)

  • WebSocket

  • Server Sent Events

在浏览器中存储数据

  • Cookie,document.cookie

  • LocalStorage,sessionStorage

  • IndexedDB

动画

  • 贝塞尔曲线

  • CSS 动画

  • JavaScript 动画

Web components

  • 从星球轨道的高度讲起

  • Custom elements

  • 影子 DOM(Shadow DOM)

  • 模板元素

  • Shadow DOM 插槽,组成

  • 给 Shadow DOM 添加样式

  • Shadow DOM 和事件(events)

正则表达式

  • 模式(Patterns)和修饰符(flags)

  • 字符类

  • Unicode:修饰符 “u” 和 class \p{...}

  • 锚点(Anchors):字符串开始 ^ 和末尾 $

  • Flag "m" — 多行模式

  • 词边界:\b

  • 转义,特殊字符

  • 集合和范围 [...]

  • 量词 `+,*,?` 和 `{n}`

  • 贪婪量词和惰性量词

  • 捕获组

  • 模式中的反向引用:\N 和 \k<name>

  • 选择(OR)|

  • 前瞻断言与后瞻断言

  • 灾难性回溯

  • 粘性标志 "y",在位置处搜索

  • 正则表达式(RegExp)和字符串(String)的方法

评论

现代 JavaScript 教程相关推荐

  1. 后端返回number类型数据_【JavaScript 教程】标准库—Number 对象

    作者 | 阮一峰 1.概述 Number对象是数值对应的包装对象,可以作为构造函数使用,也可以作为工具函数使用. 作为构造函数时,它用于生成值为数值的对象. var n = new Number(1) ...

  2. Javascript教程:AngularJS的五个超酷特性

    日期:2012-7-17  来源:GBin1.com AngularJS是一个超棒的javascript框架,不单单对于开发人员来说非常有吸引力,对于UI设计师来说也同样出色.在这篇教程中,我们将简单 ...

  3. JavaScript教程之快速入门

    ##JavaScript教程 #js简介 javaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛 ...

  4. JavaScript教程--从入门到精通

    JavaScript是由Netscape公司开发并随Navigator导航者一起发布的.介于Java与HTML之间.基于对象事件驱动的编程语言,正日益受到全球的关注.因它的开发环境简单,不需要Java ...

  5. 对象数组参数_【JavaScript 教程】标准库—Array 对象

    作者 | 阮一峰 1.构造函数 Array是 JavaScript 的原生对象,同时也是一个构造函数,可以用它生成新的数组. var arr = new Array(2);arr.length // ...

  6. 菜鸟教程 之 JavaScript 教程

    From:菜鸟教程 JavaScript:https://www.runoob.com/ W3School JavaScript 教程:http://www.w3school.com.cn/js/in ...

  7. linq结果转换object_【JavaScript 教程】标准库—Object 对象

    作者 | 阮一峰 1.概述 JavaScript 原生提供Object对象(注意起首的O是大写),本章介绍该对象原生的各种方法. JavaScript 的所有其他对象都继承自Object对象,即那些对 ...

  8. javascript教程:console.log 详解

    对应WEB程序员,console.log 可以说是神器,极大地方便了程序开发.程序猿:学习了,用Console写日志比alert方便多了. console.log(object[, object, . ...

  9. javascript教程_JavaScript教程

    javascript教程 JavaScript is the most widely used scripting language on Earth. And it has the largest ...

  10. ZetCode JavaScript 教程

    来源:ApacheCN ZetCode 翻译项目 译者:飞龙 协议:CC BY-NC-SA 4.0 贡献指南 本项目需要校对,欢迎大家提交 Pull Request. 请您勇敢地去翻译和改进翻译.虽然 ...

最新文章

  1. 全民K歌推荐后台架构
  2. 正则表达式引擎执行原理——从未如此清晰!
  3. centos java发送邮件发不出去_传真机发不出传真怎么办 传真机发不出传真解决方法【详解】...
  4. 神经网络压缩之低比特量化的优劣分析
  5. 登录工程:传统 Web 应用中的身份验证技术
  6. Python学习---django知识补充之CBV
  7. elasticsearch5.0启动出现的错误
  8. 小区移动基站能否杀人于无形?
  9. Apache 简单设置虚拟主机
  10. 华为员工 iPhone 发文遭罚;百度遭约谈勒令整改;锤子 1577 万元被法院保全 | 极客头条...
  11. Windows 环境下分布式跨域Session共享(转)
  12. 基于java在线影院订票系统论文
  13. 2020年中国轴承套圈行业市场现状分析,国内市场格局十分分散「图」
  14. 计算机指纹驱动程序,计算机指纹失灵,提示找不到支持Windows Hello指纹的指纹识别器...
  15. 谷歌、亚马逊在区块链都耽搁了什么 竟让后起的脸书名声大噪
  16. 10款实用苹果Siri快捷指令分享
  17. windows 8 Surface 会成功吗?
  18. 手机IP和内网外网IP的访问
  19. 【从零学习OpenCV 4】Windows系统中安装OpenCV 4
  20. 互联网的成功和端到端原则

热门文章

  1. 技校计算机程序设计,如何编写技工学校计算机程序设计课程校本教材
  2. StanfordDB class自学笔记 (5) JSON Data
  3. JAVA基础(3/17)-基本语法_运算符
  4. 重命名Docker容器名称
  5. Ubuntu镜像下载地址:Ubuntu-14.04/16.04/18.04
  6. 第十篇 requests模块
  7. WPF 引用 ttf文件
  8. 12月22号至27号进度报告
  9. android-async-http框架之与网络进行数据交互
  10. 将指定用户下所有表的查询权限赋权给查询用户