词法结构

2.1字符集

JavaScript程序是用Unicode字符集编写的。Unicode是ASCII和Latin-1的超集,并支持地球上几乎所有再用的语言。

2.1.1区分大小写

JavaScript是区分大小写的语言。也就是说,关键字、变量、函数名和所有的标识符(identifier)都必须采取一致的大小写形式。比如,关键字“while”必须写成“while”,而不能写成“While”或“WHILE”。

HTML并不区分大小写(尽管XHTML区分大小写)。由于它和客户端JavaScript联系紧密,因此这点区别很容易混淆。

在HTML中,这些标签和属性名可以使用大写也可以是小写,而在JavaScript中则必须是小写。例如,在HTML中设置事件处理程序时,onclick可以写成onClick,但在JavaScript代码(或者XHTML文档)中,必须使用小写的onclick。

2.1.2空格、换行符和格式控制符

JavaScript会忽略程序中的标识(token)之间的空格。多数情况下,JavaScript同样会忽略换行符。

由于可以在代码中随意使用空格或换行,因此可以采用整齐、一致的缩进来形成统一的编码风格,从而提高代码的可读性。

除了可以识别普通的空格符(\u0020)之外,JavaScript还可以识别如下这些表示空格的字符:

水平制表符(\u0009),垂直制表符(\u000B),换页符(\u000C),不中断空白符(\u00A0),字节序标记(\uFEFF),以及在Unicode中所有Zs类别的字符。

JavaScript将如下字符识别为行结束符:

换行符(\u000A),回车符(\u000D),行分隔符(\u2028),段分隔符(\u2029)。

回车符加换行符在一起被解析为一个单行结束符。

Unicode格式控制字符,比如“从右至左书写标记”(\u200F)和“从左至右书写标记”(\u200E),控制着文本的视觉显示,这对于一些非英文文本的正确显示来说是至关重要的,这些字符可以用在JavaScript的注释、字符串直接量和正则表达式直接量中,但不能用在标识符中。

但有个例外,零宽连接符(\u200D)和零宽非连接符(\uFEFF)是可以出现在标识符中的,但不能作为标识符的首字符。

2.1.3Unicode转义序列

在有些计算机硬件和软件里,无法显示或输出Unicode字符全集。为了支持那些使用老旧技术的程序员,JavaScript定义了一种特殊序列,使用6个ASCII字符来代表任意16位Unicode内码。

这些Unicdoe转义序列均以\u为前缀,其后跟随4个十六进制数(使用回溯子以及大写或小写的字母A~F表示)。这种Unicode转义写法可以用在JavaScript字符串直接量、正则表达式直接量和标识符中(关键字除外)。如下两个JavaScript字符串是完全一样的:

Unicode转义写法也可以出现在注释中,但由于JavaScript会将注释忽略,它们只是被当成上下文中的ASCII字符处理,而且并不会被解析为其对应的Unicode字符。

2.1.4标准化

Unicode允许使用多种方法对同一个字符进行编码。

在文本编辑器中,这两种编码的显示结果一模一样,但它们的二进制编码表示是不一样的,在计算机里也不相等。

Unicode标准为所有字符定义了一个首选的编码格式,并给出了一个标准化的处理方式将文本转换为一种适合比较的标准格式,JavaScript会认为它正在解析的程序代码已经是这种标准格式,不会再对其标识符、字符串或正则表达式作标准化处理。

2.2注释

JavaScript支持两种格式的注释。

在行尾“//”之后的文本都会被JavaScript当做注释忽略掉。

此外,“/*”和“*/”之间的文本也会当做注释,这种注释可以跨行书写,但不能有嵌套的注释。

2.3直接量

所谓直接量(literal),就是程序中直接使用的数据值。下面列出的都是直接量:

  • 12 //数字
  • 1.2 //小数
  • "hello world" //字符串文本
  • ‘Hi‘ //另一个字符串
  • true //布尔值
  • /javascript/gi //正则表达式直接量(用做模式匹配)
  • null //空

2.4标识符和保留字

标识符就是一个名字。在JavaScript中,标识符用来对变量和函数进行命名,或者用做JavaScript代码中某些循环语句中的跳转位置的标记。

JavaScript标识符必须以字母、下划线(_)或美元符($)开始。后续的字符可以是字母、数字、下划线或美元符(数字是不允许作为首字符出现的,以便JavaScript可以轻易区分开标识符和数字)。

出于可移植性和易于书写的考虑,通常我们只是用ASCII字母和数字来书写标识符。

保留字

JavaScript把一些标识符拿出来用做自己的关键字。因此,就不能再在程序中把这些关键字用做标识符了。

2.5可选的分号

和其他许多编程语言一样,JavaScript使用分号(;)将语句分隔开。

JavaScript中,如果语句各自独占一行,通常可以省略语句之间的分号。

JavaScript并不是在所有换行出都填补分号:只有在缺少了分号就无法正确解析代码的时候,JavaScript才会填补分号。

推荐手动填写行尾的显式分号,这样可以方便调试并且避免不必要的错误。

时间: 2024-12-28 12:04:59

词法结构的相关文章

javascript基础语法——词法结构

× 目录 [1]java [2]定义 [3]大小写[4]保留字[5]注释[6]空白[7]分号 前面的话 javascript是一门简单的语言,也是一门复杂的语言.说它简单,是因为学会使用它只需片刻功夫:而说它复杂,是因为要真正掌握它则需要数年时间.实际上,前端工程师很大程度上就是指javascript工程师.前端入门容易精通难,说的是前端,更指的是javascript.本文是javascript基础语法的第一篇——词法结构 与java关系 关于javascript有这样一个说法,java和jav

JavaScript权威指南--词法结构

使用广泛,所有的浏览器(桌面.手机.屏蔽等等)都配有相应的JavaScript解析器. 三技能:JavaScript.HTML.CSS. JavaScript早已超出了其“脚本语言”本身的范畴,而成为一种集健壮性/高效性和通用性为一身的编程语言. 编程语言的词法结构是一套基础性规则,用来描述如何使用这门语言来编写程序.作为语法的基础,它规定了诸如变量名是什么样的.怎么写注释,以及程序语句之间如何分割的等规则. 1.字符集 JavaScript程序是用Unicode字符集编写的.Unicode是A

JavaScript词法结构

编程语言的词法结构是一套基础性规则,用来描述如何使用这门语言来编写程序,作为语法的基础,JavaScript基本词法结构如下: 1.JavaScript程序是用Unicode字符集编写的,Unicode是ASCII和Latin-1的超集,并支持地球上几乎所有的语言. 2.JavaScript是区分大小写的语言,而HTML并不区分大小写. 3.JavaScript会忽略程序中标识之间的空格,多数情况下,JavaScript同样会忽略换行符. 4.JavaScript定义了一种特殊序列,使用6个AS

第二章:Javascript词法结构

编程语言的词法结构是一套基础性的规则,用来描述你如何编写这门语言.作为语法的基础,它规定了变量名是怎么样的,如何写注释,以及语句之间是如何区分的.本节用很短的篇幅来介绍javascript的词法结构. 1.字符集 javascript程序是用Unicode字符集编写的,Unicode是ASCII和Latin-1的超集,并支持地区上几乎所有的语言.ECMAscript3要求javascript的实现必须支持Unicode2,1及后续版本,ECMAscript5则要求支持Unicode3及后续版本

2.词法结构-JavaScript权威指南笔记

今天是第二章.所谓词法结构(lexical structure),就是写代码中最基本的东西,变量命名,注释,语句分隔等,这是抄书抄的... 1.字符集,必须是Unicode,反正Unicode是ASCII的超集,各种语言妥妥支持,克林贡语=.=?当我没说 2.JavaScript是区分大小写的. 这一点给我留下了深刻印象.去年五月份,第一次写JavaScript,document.getElementById()写成了document.getElementByID(),妈蛋整整一个上午硬是get

Note | javascript权威指南[第六版] 第2章:词法结构

语法结构规定了诸如变量名是什么样的.怎么写注释,以及程序语句之间如何分隔等规则.本章用很短的篇幅来介绍JavaScript的词法结构. 2.1.字符集 JavaScript程序是用Unicode字符集编写的.Unicode是ASCII和Latin-1的超集,并支持地球上几乎所有在用的语言. 2.1.1.区分大小写   JavaScript是区分大小写的语言.也就是说,关键字.变量.函数名和所有的标识符(identifier)都必须采取一致的大小写形式.但需要注意的是,HTML并不区分大小写(尽管

【转】简单了介绍js中的一些概念(词法结构) 和 数据类型(部分)。

1 , javascript字符集: javascript采用的是Unicode字符集编码. 为什么要采用这个编码呢? 原因很简单,16位的Unicode编码可以表示地球人的任何书面语言.这是语言 国际化的一个重要特征.(大家也许见过用中文写脚本,比如:function 我的函数() {} ); Javascript中每个字符都是用2个字节表示的.(因为是16位编码) 2 ,大小写敏感: js是一种区分大小写的语言. 注意下:以前我也犯过的错误. HTML是不区分大小写的.经常看见有人这么写, 

JavaScript权威指南第02章 词法结构

词法结构 2.1字符集 JavaScript 是Unicode字符集编写,几乎支持地球上所有的语言. 2.1.1区分大小写 javascript是区分大小写的语言. 2.1.2 空格.换行符和格式控制符 javascript会忽略标识之间的空格符.换行符.通过空格和换行可以大大地提高代码的可读性.当需要使用空格和换行符时,使用Unicode的转义来实现. 2.2注释 单行注释     //这里是单行注释 多行注释    /**多行注释 */ 2.3直接量 在程序中能够直接使用的量,比如数字,字符

JavaScript语言核心之词法结构

编程语言的词法结构是一套基础性规则,用来描述如何使用这门语言来编写程序.作为语法的基础,它规定了诸如变量名是什么样的.怎么写注释,以及程序语句之间如何分割的等规则. 1.1字符集 JavaScript程序是用Unicode字符集编写的.至于Unicode字符集,目前虽然查过一些资料,但是至今对UTF-8.UTF-16还是晕菜,也没搞懂一个汉字到底占几个字节的问题,所以这里就不做介绍了(就当埋坑了,以后搞懂了再做介绍吧).至于计算js中一个字符串所在字节数,曾查到如下实现代码: 1 /** 2 *

《JS权威指南学习总结--第二章词法结构》

第二章词法结构 内容要点: 一.注释 1. //表示单行注释 2. /*这里是一段注释*/ 3.一般编辑器里加注释是:选中要加注释的语句,按 ctrl+/ 二.直接量 所谓直接量,就是程序中直接使用的数据量,比如: 数字.小数.字符串文本.布尔值.正则表达式直接量 三.标识符和保留字 标识符作用:标识符就是一个名字,在JS中,标识符用来对变量和函数进行命名,或者用做JS代码中某些循环语句中的跳转位置的标记. 标识符命名规则: 1.必须以字母.下划线(_)或美元符($)开始. 2.后续的字符可以是