JavaScript 词法结构

编程语言的词法结构(lexical structure)是一套基础性规则,描述了构成该编程语言合法符号的字符序列,即描述了如何使用这门语言来编写程序。

词法结构规定了变量名命名规则、如何写注释、程序语句之间如何分隔等规则。

合法符号通常由标识符(identifier)、关键字(keyword)、标点符号(punctuation)、字面量(literal)或运算符(operator)组成。

字符集

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

区分大小写

JavaScript 是区分大小写的语言。

关键字、变量名、函数名和所有的标识符(identifier)都必须采取一致的大小写形式。

  • 关键字 "while" 必须写成 "while",而不能写成 "While"、"WHILE" 等。
  • 变量 "online"、"Online"、"ONLINE" 是三个不同的变量。

说明:

  • HTML 并不区分大小写,XHTML 区分大小写。
						
<div id="demo">没点我。</div>
<button onclick="onclickMe()">点击</button>

<script>
  function onclickMe() {
    document.getElementById("demo").innerHTML = "调用 onclickMe() 函数";
  }

  function onclickme() {
    document.getElementById("demo").innerHTML = "调用 onclickme() 函数";
  }
</script>
						
					
没点我。

许多 JavaScript 对象和属性与它们所表示的 HTML 标签和属性同名。在 HTML 中,这些标签和属性名可以随意大小写,但在 JavaScript 中则必须是小写。例如,HTML 中的事件属性 onclick 可以写成 onClick 或者 OnClick,但在 JavaScript 中只能有一种写法 onclick。

						
<div id="demo">没点我。</div>		
<button id="demoBtn" onClick="onclickMe()">点击</button>

<script>
  document.getElementById("demoBtn").onclick = function() {
    document.getElementById("demo").innerHTML = "JS 中重新赋值 onclick 属性";
  }

  document.getElementById("demoBtn").onClick = function() {
    document.getElementById("demo").innerHTML = "JS 中重新赋值 onClick 属性";
  }
</script>
						
					

注释

为程序添加注释:

  • 可以解释程序某些语句的作用和功能,使程序更易于理解,通常用于代码的解释说明。
  • 可以用注释来暂时屏蔽某些语句,使浏览器对其暂时忽略,等需要时再取消注释,这些语句就会发挥作用,通常用于代码的调试。
						
//单行注释

/*多行注释的开始标识
 
  多行注释的结束标识
 */

/*
 * 多行注释
 * 
 */						
					

直接量

直接量(literal)就是程序中直接使用的数据值。

						
12               //整数
1.2              //实数
"hello world"    //字符串
'hi'             //字符串
true             //布尔值
/javascript/gi   //正则表达式直接量(用做模式匹配)
null             //空值
{ x:1, y:2 }     //对象直接量
{1, 2, 3, 4, 5}  //数组直接量
						
					

标识符

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

  • JavaScript 标识符必须以字母、下划线 _ 或者美元符号 $ 开始。
  • 后续的字符可以是字母、数字、下划线或美元符号。
  • 数字是不允许作为首字符出现的,以便 JavaScript 可以轻易区分开标识符和数字。
  • 出于可移植性和易于书写的考虑,通常只使用 ASCII 字母和数字来书写标识符。
  • 和其他编程语言一样,JavaScript 保留了一些标识符为自己所用。这些 保留字/关键字 不能再作为普通的标识符使用。

关键字/保留字

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

JavaScript 保留字
breakdeletefunctionreturntypeof
casedoifswitchvar
catchelseinthisvoid
continuefalseinstanceofthrowwhile
debuggerfinallynewtruewith
defaultfornulltry

分号

和大多数编程语言一样,JavaScript 语言使用分号 ; 作为语句的结束符,或者说,作为语句之间的分隔符。这对增强代码的可读性和整洁性是非常重要的。

在 JavaScript 中,如果语句各自独占一行,通常可以省略语句之间的分号,程序结尾或者右花括号 } 之前的分号也可以省略。

						
a = 1           //各自独占一行,可以省略语句分隔符 ;
b = 2;          //a=>1 b=>2
a = 3; b = 4;   //不能省略语句分隔符 ;



						
					

说明:

  • JavaScript 并不强制要求必须以分号 ; 作为语句的结束标识,如果语句的结束处没有分号,JavaScript 会自动将该行代码的结尾作为语句的结尾。
  • 应该使用分号 ; 来明确标记语句的结束,即使在并不完全需要分号 ; 的时候也是如此,这样可以保证每行代码的准确性。