重学前端 - JavaScript部分-词法
概述
我们都知道JS是一种“解释执行”的语言,不同于c++等语言的提前编译,它的编译过程是在JS引擎中完成的(代码执行前进行编译),更多内容可参考:你不知道的JS系列-1
对于所有需要编译的语言来说,都需要提前指定一些规则来设计语言,这些规则就可以称之为“文法”。
文法是编译原理中对语言的写法的一种规定,一般来说,文法分成词法和语法两种。词法规定了语言的最小语义单元:token,可以翻译成“标记”或者“词”。这里我们统一称为“词”,
我们把视角再转回到JS身上:所有源码中出现的内容包括了:空白符号、换行符、注释、标识符名称、符号、数字直接量、字符串直接量、正则表达式直接量、字符串模板。接下来,编译器在代码执行前就需要对这些内容进行语法分析(拆词)
几点说明
- Javascript支持多种空白符号
- Javascript只支持四种字符作为换行符
- Javascript支持单行注释与多行注释
- Javascript中的标识符名称可以以“$”、“_”或者 Unicode 字母开始
- Javascript中的字符串直接量支持单引号和多引号两种
- Javascript中‘/’不仅可以作为除法,也可以作为正则表达式,所以词法分析器需要两套词法
- Javascript中模板字符串也需要单独的词法来处理
- Javascript支持数字直接量,不过对于
12.toString()
这种写法要人为处理,否则默认词法会将12.
划分为一个“token”,从而引发异常
重学前端 - JavaScript部分-对象
面向对象与基于对象
什么是面向对象
Object(对象)在英文中,是一切事物的总称,这和面向对象编程的抽象思维有互通之处。
在《面向对象分析与设计》这本书中,Grady Booch 替我们做了总结,他认为,从人类的认知角度来说,对象应该是下列事物之一:
- 一个可以触摸或者可以看见的东西;
- 人的智力可以理解的东西;
- 可以指导思考或行动(进行想象或施加动作)的东西。
有了对象的自然定义后,我们就可以描述编程语言中的对象了。在不同的编程语言中,设计者也利用各种不同的语言特性来抽象描述对象,最为成功的流派是使用“类”的方式来描述对象,这诞生了诸如 C++、Java 等流行的编程语言。而 JavaScript 早年却选择了一个更为冷门的方式:原型。
前端脚手架开发指南
何谓脚手架?
在前端工程化高度发展的当代,各种构建工具大行其道,webpack、gulp、rollup、fis等,这些构建工具的主要作用就是将前端代码工程化,实现代码编译,文件优化,模块分割,自动刷新,代码校验,自动发布等供嫩,我们在实际开发中,要根据自己的需求定制不同的配置,但是多数情况下,项目配置在不同的项目中改动不大,有些甚至不需要做任何修改。这个时候,开发不同的项目,我们需要将这些配置重新拷贝一遍,于是,为了减少重复性工作,脚手架的概念应运而生。
对于vue-cli,create-react-app,或者自己开发的工具,
脚手架的定位基本是一致的:创建项目初始文件
脚手架作用是:创建项目的初始文件,本质是方案的封装