《JavaScript权威指南 第六版 中文版》(一)
《JavaScript权威指南 第六版 中文版》
第二章 词法结构
2.1字符集
JavaScript是使用Unicode字符集编码写的。
2.1.1区分大小写
JavaScript是区分大小写的语言。也就是说,关键字、变量、函数名和所有的标识符都需要采用一致的大小写形式。
许多客户端JavaScript对象和属性与它们所表示的HTML标签和属性同名。在HTML中这些标签和属性名可以使用大写,而在JavaScript中则必须使用小写
2.1.2空格、换行符和格式控制符
JavaScript会忽略程序中标志(token)之间的空格。多数情况下,JavaScript会忽略换行符(2.5节 提到一种以外情形),由于可以在代码中随意使用空格和换行,因此可以使用整齐一致的缩进来形成统一一致的编码风格,从而提高代码的可读性。
除了能够识别普通的空格符(\u0020),JavaScript还可以识别如下这些表示空格的字符:水平制表符(\u0009)、垂直制表符(\u000B)、换页符(\u000C)、不中断空格符(\u00A0)、字节序标记(\uFEFF),以及在Unicode中所有的Zs类别的字符
JavaScript将如下字符识别为行结束符,换行符(\u000A)、回车符(\u000D)、行分隔符(\u2028)、段分隔符(\u2029)。回车符加换行符在一起被解释为一个单行结束符。
Unicode格式控制字符 ,比如“从右至左书写标记”(\u2ooF)和“从左至右书写标记,(\u200E),控制着文本的视觉显示,这对于一些非英语文本的正确显示来说是至关重要的,这些字符可以用在JavaScript的注释、字符串直接量和正则表达式直接量中,但不能用在标识符(比如,变量名)中。但有个例外,零宽连接符(\u200D)和零宽非连接符(\uFEFF) 是可以出现在标识符中的,但不能作为标识符的首字符。上文也提到了,字节序标记格式控制符(\uFEFF)被当成了空格来对待。
2.1.3Unicode转义序列
使用6位ASCII字符代表任意16位Unicode内码,这些Unicode转义序列均以\u为前缀,后面跟4个16进制数。这种Unicode转义写法可以在JavaScript字符串直接量、正则表达式直接量和标识符中使用。
Unicode转义写法也可以出现在注释中,但由于Javascript会将注释忽略,它们只是被当
成上下文中的ASCll字符处理,而且并不会被解析为其对应的Unicode字符.
2.1.4标准化
Unicode标准为所有字符定义了一个首选的编码格式,并给出了一个标准化的处理方式将文本转换为一种适合比较的标准格式,Javasoript会认为它正在解析的程序代码已经是这种标准格式,不会再对其标识符、字符串或正则表达式作标准化处理。
2.2注释
JavaScript支持两种格式的注释。在行尾“//”之后的文本都会被JavascriPt当做注释忽略掉的。此外,"/”和“/”之间的文本也会当做注释,这种注释可以跨行书写,但不能有嵌套的注释。
2.3直接量
所谓直接量(literal),就是程序中直接使用的数据量。
2.4标识符和保留字
标识符就是一个名字。在JavaScript中,标识符用来对变量和函数进行命名,或者用做JavaScript代码中某些循环语句中的跳转位置的标记。JavaScript标识符必须以字母、下划线(_)或美元符($)开始。后续的字符可以是字母、数字、下划线或美元符(数字是不允许作为首字符出现的,以便JavaScript可以轻易区分开标识符和数字)。
出于可移植性和易于书写的考虑,通常我们只使用ASCII字母和数字来书写标识符。然而需要注意的是,JavaScript允许标识符中出现Unicode字符全集中的字母和数字。
保留字
关键字
class const enum export extends super
2.5可选的分号
在JavaScript中,如果语句各自独占一行,通常可以省略语句之间的分号(程序结尾或花括号"}"之前的分号也可以省略),一般使用分号(;)来明确标记语句的结束,即使并不完全需要分号的时候也是如此。
注意几个细节
如果按照如下方式等号可以省略:
a=3;
b=4;如果按照如下方式等号不能省略:
a=3;b=4;
需要注意的是,JavaScript并不是在所有换行处都填补分号:只有在缺少了分号就无法正确解析代码的时候,JavaScript才会填补分号。换句话讲(类似下面代码中的两处异常),如果当前语句和随后的非空格字符不能当成一个整体来解析的话,JavaScript就在当前语句行结束出填补分号。
看如下代码:
var a
a
=
3
通常来讲,如果一条语句以"("、"["、"l"、"/”、"+"或"一"开始,那么它极有可能和前一条语句合在一起解析。以"+"和"一"开始的语句并不常见,而以"("和"["开始的语句则非常常见,至少在一些JavaScript编码风格中是很普遍的。有些程序员喜欢保守地在语句前加上一个分号,这样哪怕之前的语句被修改了、分号被误删除了,当前语句还是会正确地解析。
在return、break和continue和随后的表达式之间不能有换行。
如果将"++"、"--"运算符用作后缀表达式,它和表达式应当在同一行,否则行尾将填补分号,例如:
x
++
y
这段代码将被解析成"x;++y",而不是"x++;y"
注释:
[Zs]: Unicode对字符做了分类,这种分类使用“通用类别值”表示,这里的“Zs”是其中的一种类别值,特指没有标志符号,但不属于控制和格式字符的空格字符。
《JavaScript权威指南 第六版 中文版》(一)的更多相关文章
- tcp/ip原理/三次握手/四次挥手
@ tcp/ip原理 1.1 tcp/ip三次握手 1.1.1 建立过程说明 a) 由主机A发送建立TCP连接的请求报文, 其中报文中包含seq序列号, 是由发送端随机生成的, 并且还将报文中SY ...
- 白话TCP/IP原理
TCP/IP(Transmission-Control-Protocol/Internet-Protocol),中文译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议 ...
- <TCP/IP原理> (四) IP编址
1.IP地址的基本概念:作用.结构.类型 2.特殊地址:作用.特征 网络地址.广播地址(直接.受限) 0.0.0.0 环回地址 3.单播.多播.广播地址:特征 4.专用地址:作用.范围 5.计算和应用 ...
- <TCP/IP原理> (二) OSI模型和TCP/IP协议族
1.OSI参考模型 1)作用 2)各层的名称和功能 2.对分层网络协议体系的理解 1)不同节点:层次组成不同,作用不同 2)横向理解:虚通信.对等实体.协议.PDU 3)纵向理解:封装与解封.服务.接 ...
- <TCP/IP原理> (一)
1.协议和标准 2.标准化组织 3.Internet标准:RFC 4.Internet的管理机构 一.协议和标准 1.协议(Protocol) 一组控制数据通信的规则 三要素:语法(syntax).语 ...
- TCP/IP原理浅析
TCP/IP概述 TCP/IP起源于1969年美国国防部(DOD:The United States Department Of Defense)高级研究项目管理局(APRA:AdvancedRese ...
- [转] TCP/IP原理、基础以及在Linux上的实现
导言:本篇作为理论基础,将向我们讲述TCP/IP的基本原理以及重要的协议细节,并在此基础上介绍了TCP/IP在LINUX上的实现. OSI参考模型及TCP/IP参考模型 OSI模型(open syst ...
- TCP/IP原理简述
TCP/IP与OSI TCP/IP工作在第4层,在TCP/IP协议簇中,有两个不同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议),它们分别承载不同的应用.TCP协议提供可靠的服务,UDP ...
- <TCP/IP原理> (三) 底层网络技术
传输介质 局域网(LAN) 交换(Switching) 广域网(WAN) 连接设备 第三章 底层网络技术 引言 1)Interne不是一种新的网络 建立在底层网络上的网际网 底层网络——“物理网”,网 ...
- 在深谈TCP/IP三步握手&四步挥手原理及衍生问题—长文解剖IP
如果对网络工程基础不牢,建议通读<细说OSI七层协议模型及OSI参考模型中的数据封装过程?> 下面就是TCP/IP(Transmission Control Protoco/Interne ...
随机推荐
- HTML5 模拟现实物理效果,感受 Web 技术魅力
Ball Pool 是一个基于 HTML5 技术的实验,模拟现实物理效果,让你在 Web 中感受自然物体的运动.玩法介绍:可以随意拖动圆球.点击页面背景.晃动浏览器.双击页面背景或者按住鼠标左键,有不 ...
- JavaScript学习笔记-函数实例
函数实例 var p = { a:15, b:'5', f1:function(){ var self = this; console.log(self.a+self.b); f2(); functi ...
- TI的DSP、ST的ARM、Intel的X86浮点性能对比
估计没什么价值,单纯地记录下时间,以便以后查看. TMS320F28335 STM32f030 i3 4170 i3 4170 主频 150MHz 48MHz 3.7GHZ 3.7GHZ IDE ...
- CSS学习总结(三)
一.属性选择符 如下表所示: 例子如下: <head> <meta charset="utf-8"> <style type="text/c ...
- ArcGIS中的WKID
提到坐标系统,大家多少能明白一些,但在运用时,有些朋友搞得不是非常清楚,以后专门来总结.在实地生产项目中,使用较多的2000中国大地坐标系(CGCS2000).1980西安坐标系.1954北京坐标系统 ...
- OpenGL显示图片
最近想用C++在windows下实现一个基本的图像查看器功能,目前只想到了使用GDI或OpenGL两种方式.由于实在不想用GDI的API了,就用OpenGL的方式实现了一下基本的显示功能. 用GDAL ...
- Web自动化测试 Selenium 1/3
Selenium 名字的来源 在这里,我还想说一下关于 Selenium 名字的来源,很有意思的 : > : Selenium 的中文名为 “ 硒 ” ,是一种化学元素的名字,它 对 汞 ( M ...
- word第二讲(0806)
word里的长度单位 绝对长度单位(厘米,英寸) 相对长度单位(字符,像素) 样式 问题: 如何设置多个部分的格式 多次选择,多次设置 多次选择,一次设置 应用格式刷(ctrl+shift+c,ctr ...
- 遍历collection
链接 遍历NSArray 正向遍历 for (id object in array) 反向遍历 for (id object in [array reverseObjectEnumerator]) 如 ...
- tomcat中的JSP引擎
jsp文件解析成class文件过程需要利用tomcat的jasper组件. Jasper是tomcat中使用的JSP引擎,在Tomcat 6中使用的是Jasper 2,相对于原来的版本作了不少的改进, ...