写点什么

着眼语言本身,咱们来聊聊 JavaScript | 极客时间

  • 2019-11-14
  • 本文字数:1457 字

    阅读完需:约 5 分钟

着眼语言本身,咱们来聊聊 JavaScript | 极客时间

JavaScript 和 HTML 、CSS 同属前端工程师必须掌握的三大技能,重要性不言而喻。这几年,随着行业的发展,JavaScript 更是变得无所不能,毫不夸张地说,现在我们看到的基本所有的主流互联网应用,它的前端都有大量的 JavaScript 代码。


但是,入行 20 多年,我发现很多人对 JavaScript 的印象都只是“简单易学”,对其掌握也仅仅停留在“会用就好”,以至于不求甚解、迷失于 JavaScript 。究其原因,他们从来都只是“写代码”,而没有去真正去了解、去探索“什么是语言”。


其实,JavaScript 作为一门语言,虽然易上手,但却有着诸多复杂微妙的机制,想要真正掌握绝非易事。而这些机制,正是语言的精髓。只有当你深入理解语言内部的实现原理,才能做到无论出现什么新技术、新框架,都能轻松应对。


这也是为什么我一直认为:每个工程师都应该构建一个语言知识结构。因为,一旦你建立了你的体系性,你对代码的洞察力绝对会随之而提升,让你可以在纷繁的代码中快速找到性能、组织、逻辑等方面的关键所在,并在语言层面给出合理的解释。这就相当于你创建了游戏规则,拥有了“编程游戏”中的上帝视角。你将会有一种切实的、万物如一的操控感


在过去的二十年中,我一直不断探索 JavaScript 语言背后的机制:一面研究它的语言精髓,一面做编程实践。在我和极客时间合作的《JavaScript 核心原理解析》专栏中,我希望把我找到的答案分享给你。我将以“语言”为核心,和你一起讨论我对 JavaScript 各种语言特性的理解。


你会发现,这个专栏和其他不同,每一讲的标题都是一行代码,并且,这些代码在表达多种语言特性的同时,都指向一个核心的内容讲述方向。


我希望通过这个专栏,你能找到自己对语言的认识,构建一个语言知识结构。因为我始终认为,“构造认识”对你是极致重要的事情,并且越早越好。


也欢迎你在专栏中跟我一起探讨 JavaScript,我会知无不言言无不尽。


我是谁?

我是周爱民,目前是南潮科技(Ruff)首席架构师。和你一样,我是个喜欢 JavaScript 的人。很多人认识我,可能都是通过我写的《JavaScript 语言精髓与编程实践》一书。


从业二十多年,我深入研究过 JavaScript、Delphi、Erlang,也专注于软件开发与架构、项目管理,曾担任盛大网络平台架构师、支付宝业务架构师和豌豆荚首席架构师。


我也特别热爱写作与分享,出过《Delphi 源代码分析》、《大道至简:软件工程实践者的思想》、《大道至易:实践者的思想》、《程序原本》以及《我的架构思想:基本模型、理论与原则》等书。

你将获得什么?

专栏分为以下 4 个模块。

1.从零开始

第一部分我会主要讲述构成 JavaScript 语言的基础——JavaScript 语言的静态结构,主要包括词法环境、块级作用域、语句、声明、字面量、变量环境、模块(名字空间)等等。

2.从表达式到执行引擎

第二部分我会主要讲述 JavaScript 的执行过程,包括执行栈、执行队列、执行上下文、函数(函数对象/闭包)作为执行结构如何参与运算等等,还将讲述表达式(运算符+操作数)与优先级这个体系,说明表达式运算与语句运算间的不同。

3.从原型到类

第三部分我会讲述 JavaScript 面向对象编程体系中最核心的一些设计,包括类继承、原型继承、属性表的使用、内部方法等等,并对索引数组和关联数组在 JavaScript 中的应用与整合做深度的分析。

4.从粗通到精通的进阶之路

最后,我会讲述 JavaScript 作为动态语言的主要特性,包括动态的类型、动态的执行过程和动态的环境上下文等等。


专栏目录👇


限时订阅福利

1.早鸟拼团价 ¥55,原价 ¥68,戳我订阅


2.分享海报,邀请好友订阅即可获得 ¥18 返现,多邀多得,上不封顶。


2019-11-14 15:122245

评论

发布
暂无评论
发现更多内容

内行,阿里大牛离职带出内部“高并发系统设计”学习手册

程序知音

Java 阿里巴巴 程序员 后端 高并发

告别缺电焦虑!充电桩装上“智慧大脑”

天翼云开发者社区

云主机 云平台

ShardingSphere 云上实践:开箱即用的 ShardingSphere-Proxy 集群

SphereEx

数据库 云原生 ShardingSphere

数据库审计和日志审计的三大区别分析

行云管家

数据库 日志 日志审计 数据库审计

火眼金睛,天翼云助力打造城市视觉中枢

天翼云开发者社区

大数据 云平台

leetcode 455. Assign Cookies 分发饼干(简)

okokabcd

LeetCode 数据结构与算法 贪心算法

数据库审计部署方式有哪些?哪种比较好?

行云管家

数据库 数据库审计 数据库审计部署

Python 入门指南之标准库概览

海拥(haiyong.site)

7月月更

TiFlash 面向编译器的自动向量化加速

PingCAP

TiDB

大数据培训Spark数据倾斜问题的解决方法

@零度

spark 大数据开发

百家号基于AE的视频渲染技术探索

百度Geek说

视频 视频渲染

Python|分析QQ群聊信息,记录词频并制作词云

AXYZdong

Python 7月月更

『51单片机』十分钟学会定时器

謓泽

7月月更

【愚公系列】2022年7月 Go教学课程 010-数据类型之布尔型和字符类型

愚公搬代码

7月月更

java零基础入门-多态

喵手

Java 7月月更

一招,让停车管理不再难

天翼云开发者社区

数字化 云平台

DNS稳定性建设实战-从主机到k8s

boaker

k8s DNS 成本优化 DNS故障 稳定性保障

2022年中国互联网医疗年度盘点

易观分析

互联网医疗

易观分析加入智能投研技术联盟,共促行业数智化发展

易观分析

易观新闻

APISIX 如何与 Hydra 集成,搭建集中认证网关助力企业安全

API7.ai 技术团队

云原生 网关 身份验证 APISIX 网关

揭露数据不一致的利器 —— 实时核对系统

Shopee技术团队

数据分析 后端

小程序表单组件-1

小恺

7月月更

LeetCode-119. 杨辉三角II(java)

bug菌

Leet Code 7月月更

java培训如何防止 jar 被反编译

@零度

JAVA开发 jar被反译

JAVA编程规范之命名风格

源字节1号

软件开发

五个核心能力打造普惠金融商业化发展模式

易观分析

普惠金融

项目进度管理和风险管理记录

老猎人

关于微软 Edge 浏览器的 Tracking Prevention 特性在 Angular 应用中的影响

汪子熙

JavaScript typescript Web web开发 7月月更

大数据环境搭建:​​​​​​​​​​​​​​​​​​​​​Hadoop编译和分布式环境搭建

Lansonli

大数据 hadoop 环境搭建 7月月更

着眼语言本身,咱们来聊聊 JavaScript | 极客时间_大前端_周爱民_InfoQ精选文章