第二章词法结构

内容要点:

一.注释

1. //表示单行注释

2. /*这里是一段注释*/

3.一般编辑器里加注释是:选中要加注释的语句,按 ctrl+/

二.直接量

所谓直接量,就是程序中直接使用的数据量,比如:

数字、小数、字符串文本、布尔值、正则表达式直接量

三.标识符和保留字

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

标识符命名规则:

1.必须以字母、下划线(_)或美元符($)开始。

2.后续的字符可以是字母、数字、下划线或美元符(数字是不允许作为首字符出现的,以便JS可以轻便区分开标识符和数字)。

3.出于可移植性和易于书写的考虑,通常只使用ASCII字母和数字来书写标识符。然而需要注意的是,JS允许标识符中出现Unicode字符全集中的字母和数字。由此,程序员也可以使用非英语语言或数学符号来书写标识符。

4.和其他语言一样,JS保留了一些标识符来为自己所用,这些“保留字”不能用做普通的标识符。

保留字:

以下就是ECMAScript的全部关键字(带*号上标的是第5 版新增的关键字):

以下是ECMA-262 第3 版定义的全部保留字:

第5 版把在非严格模式下运行时的保留字缩减为下列这些:

在严格模式下,第5 版还对以下保留字施加了限制:

注意, let 和yield 是第5 版新增的保留字;其他保留字都是第3 版定义的。为了最大程度地保证兼容性,建议大家将第3 版定义的保留字外加let 和yield 作为编程时的参考。
 
  在实现ECMAScript 3 的JS 引擎中使用关键字作标识符,会导致"Identifier Expected" 错误。而使用保留字作标识符可能会也可能不会导致相同的错误,具体取决于特定的引擎。

第5 版对使用关键字和保留字的规则进行了少许修改。关键字和保留字虽然仍然不能作为标识符使用,但现在可以用作对象的属性名。一般来说,最好都不要使用关键字和保留字作为标识符和属性名,以便与将来的      ECMAScript 版本兼容。

严格模式下,同样对argument、eval标识符的使用做了严格限制,它们并不完全是保留字,但不能用做变量名、函数名或参数名。

js的具体实现可能定义独有的全局变量和函数,每一种特定的JS运行环境(客户端、服务器端等)都有自己的一个全局属性列表,这一点是需要牢记的

四.可选的分号

和其他许多编程语言一样,JS使用分号(; 英文)将语句分隔开。这对增强代码的可读性和整洁性是非常重要的。

缺少分隔符:一条语句的结束就成了下一条语句的开始。

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

关于JS中可选分号的问题有几个细节需要注意:

1.两条语句用两行书写,第一个分号可以省略掉的:

a=3;

b=4;

如果按照一行 a=3;b=4; 格式书写,第一个分号不能省略掉。

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

换句话说:如果当前语句和随后的语句的非空格字符不能当成一个整体来解析的话,JS就在当前语句行结束处填补分号。

var a

a

=

3

console.log(a)

JS将其解析为:

var a;a=3;console.log(a);

3.两种特殊的情况:

(1)在涉及到return、break和continue语句的场景中。如果这三个关键字后紧跟着换行,JS则会在换行处填补分号。

return

true

JS会解析成

return;true;

(2)在涉及到"++"和"--"运算符的时候,这些运算符可以作为表达式的前缀,也可以当作表达式的后缀。如果将其用作后缀表达式,它应该和表达式在同一行,否则,行尾将填补分号,同时"++","--"

将会作为下一行代码的前缀操作符并与之一起解析,

x

++

y

JS将解析成

x;++y;

 

  

《JS权威指南学习总结--第二章词法结构》的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. JAVA中方法的定义与使用(课堂学习归纳)

    组合数,百度词条是这样解释的:从m个不同元素中取出n(n≤m)个元素的所有组合的个数,叫做从m个不同元素中取出n个元素的组合数(Combination) 对于计算组合数,需要一定的工作量,计算机可以很 ...

  2. css的三种引入方式、常用的元素选择器以及css三大特性

    第一.html文件中如何使用css html文件中使用css有3种方式:链接式.嵌入式.行内式,推荐使用程度依次递减:1.链接式:在html文件通过<link />标签引入,rel属性值必 ...

  3. appium使用真机做安卓移动端自动化测试

    1.PC往手机上安装apk文件:adb install apk文件完整路径 2.获取app包名和activity的命令:使用aapt;aapt是sdk自带的一个工具,在sdk\builds-tools ...

  4. Modules和Autolinking

    Modules和Autolinking OC自从Apple接手后,一直在不断改进.随着移动开发带来的OC开发者井喷式增加,客观上也要求Apple需要提供各种良好特性来支持这样一个庞大的开发者社区.iO ...

  5. github import repository创建github仓库

    现在,假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆. 首先,登陆GitHub,创建一个新的仓库,名字叫blog: 1.先创建一个项目仓库 2. 我们勾选Initialize th ...

  6. hadoop 完全分布式

    转自:http://blog.itpub.net/26613085/viewspace-1219710/ 1.JDK安装和SSH互信(略过) 2.各节点IP和hostname如下(各节点需配置) [h ...

  7. 强制改变IE中的文本模式

    <meta http-equiv="X-UA-Compatible" content="IE=edge" />

  8. linux中fork()函数详解(转)

    转自:http://blog.csdn.net/jason314/article/details/5640969 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过 ...

  9. 第九十节,html5+css3pc端固定布局,底部区域,说明区域,版权区域

    html5+css3pc端固定布局,底部区域,说明区域,版权区域 完成: HTML代码: <!--尾部--> <footer class="wei-bu"> ...

  10. HDU 2181 哈密顿绕行世界问题

    Problem Description 一个规则的实心十二面体,它的 20个顶点标出世界著名的20个城市,你从一个城市出发经过每个城市刚好一次后回到出发的城市. Input 前20行的第i行有3个数, ...