javascript 词法结构小结
作为一名前端程序员,自然学习了一些框架,但是学的越多越发现自己基础的不足,于是想系统的学习一下js基础,然后把它记录下来。
如其他编程语言一样,词法结构是一门语言的基础,它规定了诸如如何给变量起名字、如何写注释、如何断句等。
字符集
JavaScript 所使用的是Unicode字符集编码。和HTML不同,JavaScript 是区分大小写的。也就是说变量、函数名、关键字和所有的标识符都必须使用一致的大小写形式。比如我们可以使用 var 来定义一个变量,而不能使用 VAR 或者 Var 来定义。JavaScript 解释器会忽略空格类字符(空格符、水平制表符、垂直制表符、换页符、不中断空白、字节序标记等)和换行类字符(换行符、回车符、行分隔符、段分隔符)。因此我们可以使用空格空行来格式化代码,提高代码可读性。
注释
注释不是 JavaScript 代码的必要部分,但是注释不仅可以增加代码可读性,还方便程序测试。JavaScript 支持两种格式的注释。第一种是单行注释,由双斜杠构成,在一行中Javascript 解释器会忽略第一个“//”之后的文本,直到本行结束。第二种是多行注释 JavaScript 将忽略 “/*”至“*/” 之间的文本,但是多行注释是不支持嵌套的(也没有嵌套的意义)。
// 这里是单行注释
/*
* 这里是多行注释
*/
直接量
直接量又叫做字面量,它是程序中直接可以使用的数据值。下面是一些直接量(字面量)的例子:
12 // 数字直接量(字面量)
'zhangsan' //字符串直接量(字面量)
true //布尔直接量(字面量)
/\b[1,6]/g //正则直接量(字面量)
{ a: 1, b: 2 } //对象直接量(字面量)
[ 1, 3, 5 ] //数组直接量(字面量)
标识符、关键字、保留字
JavaScript 标识符其实就是一个名字,可以用这个名字命名变量和函数,也可以用作语句标记。JavaScript 是由数字、字母、下划线(_)和美元符号($)组成,但是不能以数字开头。JavaScript 从这些标识符中拿出来一些作为自己的关键字。因此我们不能使用任意的标识符来给标量函数命名。现在的编辑器代码提示功能很强大,几乎不会在这上面出错。下面列出了关键字:
break delete function return typeof case do if switch var catch else in this void continue false
instanceof throw while debugger finally new true with default for null try
同时 JavaScript 还保留了一些标识符。尽管这些标识符目前还不是关键字,但是在不久后可能成为关键字。这些标识符称作保留字,这样我们在编程时就要避免使用这些保留字,以免发生一些不必要的bug。
语句分隔符
JavaScript 使用分号 ( ; )作为语句分隔符。但是这个( ; )不是必须的。当不写这个( ; )时,JavaScript 解释器试图将两条语句放在一起解释,当 js 发现无法解释通的时候,它就会在一行结尾添补分号。例如:
a = 5
b = 10
// js解释器先会解释成 a = 5 b = 10;发现无法解释通后会在末尾填不上分号,于是解释成下列语句:
a = 5;
b = 10; var x = y + z
( m + n ).toString()
// js解释器先会尝试把 z(m+n)当做是函数调用表达式,然后解释为:
var x = y + z ( m + n ) .toString();
但是凡事都有例外,有两种情况 js 会出乎意料。第一种当使用return、continue、break关键字时,如果他们后面紧跟着换行,那么js解释器将不会尝试和下一行放在一起解释,而会直接添补分号;例如:
return
true
// js会将这两行语句解释成
return ;
true;
//而其本意应该是
return true;
第二种情况遇到 ++、-- 这样的运算符,他们的特点是结合性从右向左,并且操作数是1,例如:
a
++
b
看上面的代码,当 JavaScript 解释器解释道第二行 ++ 的时候会先解释其右面的语句,于是将 b 作为++的操作数,因为++的操作数为1,因此无法向前解释,于是将上面代码解释成:
a ;
++ b;
JavaScript 的词法结构比较简单,并且现代的编辑器功能都比较出强大。在日常编程的时候很少出现错误,但是我们还是要注意这些基本问题。
更多信息,点击个人空间访问。
javascript 词法结构小结的更多相关文章
- 第二章:Javascript词法结构
编程语言的词法结构是一套基础性的规则,用来描述你如何编写这门语言.作为语法的基础,它规定了变量名是怎么样的,如何写注释,以及语句之间是如何区分的.本节用很短的篇幅来介绍javascript的词法结构. ...
- JavaScript权威设计--JavaScript词法结构(简要学习笔记二)
1.字符集 JavaScript是用Unicode字符集编写的 2.区分大小写 html不区分大小写,xhtml区分大小写 如:html中onclick可以写成Onclick 但是js中必须写成onc ...
- 《JavaScript权威指南》第六版阅读笔记(二):JavaScript词法结构
JavaScript使用Unicode字符集.ECMAScript3要求JS的实现必须支持Unicode 2.1及后续版本,ECMAScript 5要求JS的实现支持Unicode 3及后续版本. J ...
- 第一章javascript词法结构笔记摘要
语法介绍 javascript最流行的脚本语言,用于web和HTML,服务器.pc.移动端 轻量级语言,可以插入HTML页面,由浏览器按编写顺序执行 一.字符集 用Unicode字符集编写,是ASCI ...
- javascript基础语法——词法结构
× 目录 [1]java [2]定义 [3]大小写[4]保留字[5]注释[6]空白[7]分号 前面的话 javascript是一门简单的语言,也是一门复杂的语言.说它简单,是因为学会使用它只需片刻功夫 ...
- Javascript权威指南——第二章词法结构,第三章类型、值和变量,第四章表达式和运算符,第五章语句
第二章 词法结构 一.HTML并不区分大小写(尽管XHTML区分大小写),而javascript区分大小写:在HTML中,这些标签和属性名可以使用大写也可以使用小写,而在javascript中必须小写 ...
- Note | javascript权威指南[第六版] 第2章:词法结构
语法结构规定了诸如变量名是什么样的.怎么写注释,以及程序语句之间如何分隔等规则.本章用很短的篇幅来介绍JavaScript的词法结构. 2.1.字符集 JavaScript程序是用Unic ...
- 2.词法结构-JavaScript权威指南笔记
今天是第二章.所谓词法结构(lexical structure),就是写代码中最基本的东西,变量命名,注释,语句分隔等,这是抄书抄的... 1.字符集,必须是Unicode,反正Unicode是ASC ...
- JavaScript语言核心之词法结构
编程语言的词法结构是一套基础性规则,用来描述如何使用这门语言来编写程序.作为语法的基础,它规定了诸如变量名是什么样的.怎么写注释,以及程序语句之间如何分割的等规则. 1.1字符集 JavaScript ...
随机推荐
- Confluence 6 中修改默认的表现和内容
Confluence 构建了一些有用的默认设置,这些设置能够让第一次访问使用 Confluence 系统的用户更好的了解系统.同时默认的内容将新空间和其他区域放置在 Confluence 中. Con ...
- test pictures
https://cnbj1.fds.api.xiaomi.com/mace/demo/mace_android_demo.apk
- java 命令行JDBC连接Mysql
环境:Windows10 + java8 + mysql 8.0.15 + mysql-connector-java-8.0.15.jar mysql驱动程序目录 项目目录 代码: //package ...
- Brup Suite 渗透测试笔记(六)
接上次笔记这章记payload的类型分类做一说明: 1.simplelist是一个简单的payload类型,通过配置一个字符串作为payload,也可以手动添加字符串列表. 2.运行文件 Runtim ...
- python----常用功能
sintance和type class Foo(object): pass class Bar(Foo): pass obj = Bar() # isinstance用于判断,对象是否是指定类的实例 ...
- cut sticks
问题 : cut sticks 时间限制: 1 Sec 内存限制: 128 MB 题目描述 George took sticks of the same length and cut them ra ...
- (转) Golang的单引号、双引号与反引号
Go语言的字符串类型string在本质上就与其他语言的字符串类型不同: Java的String.C++的std::string以及Python3的str类型都只是定宽字符序列 Go语言的字符串是一个用 ...
- 对象存储服务(Object Storage Service,简称 OSS)
阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量.安全.低成本.高可靠的云存储服务.它具有与平台无关的RESTful API接口,能够提供99.99 ...
- 论文阅读笔记二十二:End-to-End Instance Segmentation with Recurrent Attention(CVPR2017)
论文源址:https://arxiv.org/abs/1605.09410 tensorflow 代码:https://github.com/renmengye/rec-attend-public 摘 ...
- centos7.4/rehat7.0系统安装
以下是安装过程:(图解),以下是rehat为例 这里可以改为centos的镜像 之后就可以用了,记得做快照!!! 拓展:分离使用 效果: