ReThinking In JavaScript

0x00. 前言

JavaScript 这门语言已经不容小觑了,在项目中的前端部分基于 VueJS 和 ElementUI 之后,我也就顺应历史潮流深入了解了一下这门不容小觑的语言。

1. 为什么是 JavaScript

为什么是 JavaScript 呢?

因为太火,不得不认真学习一下。

我本人对 JavaScript 这种语言是有偏见的,这点我不会掩饰,我始终记得在正常的语言 Python / Java / C# 中实现一个休眠的简单功能和在 JS 中实现一个休眠功能的差别。

在 Python 中有很多语法糖,内置数据结构丰富,而 JS 则并不是如此,数据类型相对少,Bool 判断混乱,而今天,这门混乱的语言在流行程度上几乎接近于 Java 这门语言,即便是存在这样或者那样的问题,JavaScript 依然是一种奇葩的王者。

在服务端,有多少功能是 Python 完不成而 JavaScript(即 NodeJS) 可以胜任的呢?而且,NodeJS 写起来的感觉比起 Python 来说,还是差了很多,所以,我比较倾向于把计算类和 IO 类的操作用 Python 来写,至于浏览器端就交给 JavaScript 好了。

那么,对 JS 的这种定位,也使得我对 JS 生态圈的掌握程度不会超过 Vue/React 系。

2. 工具链

2.1. 浏览器端

2.2. 桌面端

2.3. 客户端

4. 文档

5. 社区

6. 书籍

0x01 基本概念

1. 数据类型

  • Number (没有 INT 值,只有 double-precision 64-bit format IEEE 754 )
  • String
  • Boolean
  • Symbol (new in ES2015)
  • Object
    • Function
    • Array
    • Date
    • RegExp
  • null
  • undefined

2. 操作

操作

操作

3. 语句

0x02 中级概念

函数

作用域

模块

面向对象

错误 / 调试测试

IO 编程

进程和线程

多线程

多进程

GIL

协同式多任务处理
抢占式多任务处理
线程安全

正则表达式

0x03 高级技巧

0x04 标准库

常用内建模块

系统化模块

安全性

性能

0x05 NPM && Yarn

0xEE 文章更新

  • 2017-07-05 19:43:00 : 初始化本文