学习Node.js需要哪些JavaScript知识

简介: 学习Node.js需要哪些JavaScript知识

在深度学习Node.js之前,建议学习什么?

  • Lexical Structure (词法)

JavaScript 的词法(lexical grammar)。ECMAScript 源码文本会被从左到右扫描,并被转换为一系列的输入元素,包括 token、控制符、行终止符、注释和空白符。ECMAScript 定义了一些关键字、字面量以及行尾分号补全的规则。

  • Expressions (表达式)

JavaScript 中的基本关键字和常用表达式。常用表达式,例如,function*,关键字定义了一个 generator 函数表达式。还有左表达式,例如:new

  • Data Types (数据类型)

基本数据类型包括:Null、Undefined、Boolean、Number、BigInt、String、String、Symbol

类型都定义了表示在语言最低层面的不可变值。我们将这些值称为原始值。

对象(object)是指内存中的可以被标识符引用的一块区域。在 JavaScript 中,对象是唯一可变的值。

  • Classes (类)

类是用于创建对象的模板。他们用代码封装数据以处理该数据。JS 中的类建立在原型上,但也具有某些语法和语义未与 ES5 类相似语义共享。

  • Variables (变量)

一个变量,就是一个用于存放数值的容器。这个数值可能是一个用于累加计算的数字,或者是一个句子中的字符串。变量的独特之处在于它存放的数值是可以改变的。

  • Functions (函数)

函数是 JavaScript 中的基本组件之一。一个函数是 JavaScript 过程 — 一组执行任务或计算值的语句。要使用一个函数,你必须将其定义在你希望调用它的作用域内。

一个 JavaScript 函数用function关键字定义,后面跟着函数名和圆括号。

  • this operator (this 操作符)

与其他语言相比,函数的 this 关键字在 JavaScript 中的表现略有不同,此外,在严格模式和非严格模式之间也会有一些差别。

在绝大多数情况下,函数的调用方式决定了 this 的值(运行时绑定)。this 不能在执行期间被赋值,并且在每次函数被调用时 this 的值也可能会不同。ES5 引入了 bind 方法来设置函数的 this 值,而不用考虑函数如何被调用的。ES2015 引入了箭头函数,箭头函数不提供自身的 this 绑定(this 的值将保持为闭合词法上下文的值)。

  • Arrow Functions (箭头函数)

箭头函数表达式的语法比函数表达式更简洁,并且没有自己的this,arguments,super或new.target。箭头函数表达式更适用于那些本来需要匿名函数的地方,并且它不能用作构造函数。

  • Loops (循环)

for 语句

do...while 语句

while 语句

label 语句

break 语句

continue 语句

for...in 语句

for...of 语句

  • Scopes (作用域)

作用域是当前的执行上下文,值和表达式在其中“可见”或可被访问。如果一个变量或表达式不在当前的作用域中,那么它是不可用的。作用域也可以堆叠成层次结构,子作用域可以访问父作用域,反过来则不行。

JavaScript 的作用域分以下三种:

1、全局作用域:脚本模式运行所有代码的默认作用域

2、模块作用域:模块模式中运行代码的作用域

3、函数作用域:由函数创建的作用域

  • Arrays (数组)

Array 对象支持在单个变量名下存储多个元素,并具有执行常见数组操作的成员。

  • Template Literals (模板)

模板字面量是用反引号(`)分隔的字面量,允许多行字符串、带嵌入表达式的字符串插值和一种叫带标签的模板的特殊结构。

模板字面量有时被非正式地叫作模板字符串,因为它们最常被用作字符串插值(通过替换占位符来创建字符串)。然而,带标签的模板字面量可能不会产生字符串——它可以与自定义标签函数一起使用,来对模板字面量的不同部分执行任何操作。

  • Strict Mode (严格模式)

严格模式是采用具有限制性 JavaScript 变体的一种方式,从而使代码隐式地脱离“马虎模式/稀松模式/懒散模式“(sloppy)模式。

有时你会看到非严格模式,被称为“sloppy mode”。这不是一个官方术语。

  • ECMAScript 2015 (ES6) and beyond (ES6及以上)

ES6及以上版本的内容。

异步编程

以下概念也是理解异步编程的关键,异步编程是Node.js的基本部分之一:

  • Asynchronous programming and callbacks (异步编程和回调)
  • Timers (计时器)
  • Promises (承诺)
  • Async and Await (异步和等待)
  • Closures (闭包)
  • The Event Loop (事件循环)
相关文章
|
9天前
|
JavaScript 前端开发 中间件
JS服务端技术—Node.js知识点
本文介绍了Node.js中的几个重要模块,包括NPM、Buffer、fs模块、path模块、express模块、http模块以及mysql模块。每部分不仅提供了基础概念,还推荐了相关博文供深入学习。特别强调了express模块的使用,包括响应相关函数、中间件、Router和请求体数据解析等内容。文章还讨论了静态资源无法访问的问题及其解决方案,并总结了一些通用设置。适合Node.js初学者参考学习。
24 1
|
14天前
|
开发框架 JavaScript 前端开发
Node.js日记:客户端和服务端介绍、Node.js介绍
Node.js日记:客户端和服务端介绍、Node.js介绍
|
18天前
|
JavaScript 前端开发 开发工具
Node.js——初识Node.js
Node.js——初识Node.js
18 4
|
18天前
|
JavaScript 前端开发 持续交付
构建现代Web应用:Vue.js与Node.js的完美结合
【10月更文挑战第22天】随着互联网技术的快速发展,Web应用已经成为了人们日常生活和工作的重要组成部分。前端技术和后端技术的不断创新,为Web应用的构建提供了更多可能。在本篇文章中,我们将探讨Vue.js和Node.js这两大热门技术如何完美结合,构建现代Web应用。
18 4
|
28天前
|
缓存 监控 JavaScript
Node.js中基于node-schedule实现定时任务之详解
Node.js中基于node-schedule实现定时任务之详解
79 0
|
28天前
|
Web App开发 JavaScript 前端开发
Node.js:JavaScript世界的全能工具
Node.js:JavaScript世界的全能工具
|
28天前
|
JSON JavaScript 前端开发
使用JavaScript和Node.js构建简单的RESTful API服务器
【10月更文挑战第12天】使用JavaScript和Node.js构建简单的RESTful API服务器
16 0
|
1月前
|
JavaScript 前端开发 容器
js之dom学习
js之dom学习
32 0
|
4月前
|
存储 JavaScript 前端开发