博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于JavaScript词法
阅读量:6195 次
发布时间:2019-06-21

本文共 1515 字,大约阅读时间需要 5 分钟。

上篇博文发出来后感觉效果不是很好,遂写篇文章来解释解释。本文可以认为是上篇文章 JavaScript词法()的扫盲说明:)

但凡语言,不论是自然语言还是程序语言,都大致可以区分词法和语法。所谓词,就是语言中有意义的最小单元。

常常听到一个笑话,说“我英语学的可好啦,26个字母全认识!”。大家都知道,一切英文都是由26个字母组成的,为啥26个字母全认识,还不能说会英文呢?

答案就是字母不是词,单独的字母是没有意义的,只有字母组成了词,才会有表达意义的能力。所以学英语的时候,最重要的是"背单词"。

别人问你,h是什么意思啊?——h没有任何意思,只有它出现在help,hello这样的词里面,h才有意义。

对计算机语言来说,同样的道理,每个Unicode或者ASCII字符都是没有意义的,只有它们形成了"词",才有意义。

所以对任何一门计算机语言来说,最基本的规则就是词法,JavaScript里面,所谓的"词",实际上大家早已非常熟悉了,比如:

if while else for function之类的关键字

Cat Dog play等用户定义的变量名,正式的叫法是标识符 

"abc" 13.5 /abc/g true false等表示变量值的直接量

圆括号 方括号 花括号 加号 等符号

回车等换行符

空格、Tab等空白符

注释

经过很多年的发展,计算机语言的词法定义基本形成了一个通用的套路。一般来讲,一切合法的“词”,被统称作“输入元素(InputElement)”。

 

输入元素中,一切有意义的词被称作"token"(这个词到目前为止没有被广泛接受的翻译方法,所以保留),在一般的认识中,token以外的InputElement被扫描出来之后就可以直接丢弃了(当然实际情况是对大部分语言来说都是不行的,JavaScript也不行。)所以词法分析程序,大部分叫做lexer,也有人喜欢叫做tokenizer。

 

除了真正有意义的token之外,其它InputElement都是起到修饰或者增加源代码可读性的作用。在JS中,就只有以下三种:

WhiteSpace:空白符

LineTerminator:行终结符

Comments:注释

 

这三种都很好理解,是大家平时非常常用的东西。 

 

大部分编程语言的词法区别都体现在token上,JS的token其实也只有八种:

英文名 名称 简述 示例
Token 词法标记 一切JS中有实际意义的词法标记  
┣IdentifierName 标识名称 以字母或_或$开始的一个单词,可以用于属性名 abc
┃┣Identifier 标识符 非保留字的IdentifierName,可以用于变量名或者属性名
abc
┃┣Keyword 关键字 有特殊语法意义的IdentifierName
while
┃┣NullLiteral Null直接量 表示一个Null类型的值
null
┃┗BooleanLiteral 布尔直接量 表示一个Boolean类型的值
true
┣Punctuator 标点符号 表示特殊意义的标点符号
*
┣NumericLiteral 数字直接量 表示一个Number类型的值
.12e-10
┣StringLiteral 字符串直接量 表示一个String类型的值
"Hello world!"
┗RegularExpressionLiteral 正则表达式直接量 表示一个RegularExpression类的对象
/[a-z]+$$/g

 

这些token基本就是全部词法了,由它们之间的组合,可以组成表达式、语句、函数定义等语法结构,最终形成有强大表达能力的程序。

转载地址:http://ydyca.baihongyu.com/

你可能感兴趣的文章
[LeetCode] Rising Temperature 上升温度
查看>>
《Ext JS权威指南》——1.4节Ext JS的开发工具的获取、安装与配置介绍
查看>>
高维度CRM销售漏斗模型操作中注意事项
查看>>
OA系统和CRM客户关系管理 流程是核心
查看>>
最新版Win 10S遭吐槽:看起来很美,用起来很烦
查看>>
奥巴马政府发布最新Fintech白皮书,提出十大创新监管原则
查看>>
人工智能对人类的威胁只是程序BUG? | 万物互联创新大会
查看>>
Infinera Q2营收同环比下滑 加速推出新产品
查看>>
HR软件Impraise获160万美元种子投资
查看>>
还在用PS磨皮去皱?看看如何用神经网络高度还原你的年轻容貌!
查看>>
苏州扎实推进消防大数据 综合业务平台试点应用
查看>>
物联网与智能化是我国传感器发展突破口
查看>>
调试是新建数据中心成功运营的关键
查看>>
雅虎证实5亿账户被窃 刷新单一网站用户信息泄露纪录
查看>>
科学家警告:被黑客入侵的工业机器人可能将人类生命置于危险中
查看>>
你的电脑会感染勒索病毒吗?快用这款工具查一下
查看>>
村路安防建设加速 科学推进安全前行
查看>>
“业务为王”时代下,DevOps怎么玩?
查看>>
2017技术趋势:最受欢迎的几大工具
查看>>
*ST京蓝入股力合节能 着力绿色智慧城市服务
查看>>