JavaScript权威指南--词法结构
使用广泛,所有的浏览器(桌面、手机、屏蔽等等)都配有相应的JavaScript解析器。
JavaScript解析器如何工作?
浏览器在读取HTML文件的时候,只有当遇到<script>标签的时候,才会唤醒所谓的“JavaScript解析器”开始工作。
1、“找一些东西”: var、 function、 参数;(也被称之为预解析)
备注:如果遇到重名分为以下两种情况:遇到变量和函数重名了,只留下函数;遇到函数重名了,根据代码的上下文顺序,留下最后一个。
2、逐行解读代码。
备注:表达式可以修改预解析的值
JS解析器在执行第一步预解析的时候,会从代码的开始搜索直到结尾,只去查找var、function和参数等内容。一般把第一步称之为“JavaScript的预解析”。而且,当找到这些内容时,所有的变量,在正式运行代码之前,都提前赋了一个值:未定义;所有的函数,在正式运行代码之前,都是整个函数块。
三技能:JavaScript、HTML、CSS。
JavaScript早已超出了其“脚本语言”本身的范畴,而成为一种集健壮性/高效性和通用性为一身的编程语言。
编程语言的词法结构是一套基础性规则,用来描述如何使用这门语言来编写程序。作为语法的基础,它规定了诸如变量名是什么样的、怎么写注释,以及程序语句之间如何分割的等规则。
1.字符集
JavaScript程序是用Unicode字符集编写的。Unicode是ASCII和Latin-l的超集,并支持地球上几乎所有在用的语言。ECMAScript 3要求JS的实现必须支持Unicode2.1以及后续版本,ECMAScript5则要求支持Uniocde 3及以后版本。
1.1.区分大小写
JS是区分大小写的语言。也就是说、关键字、变量、函数名和所有的标识符都必须采取一致的大小写形式。
注意:HTML不区分大小写、XHTML区分。
例如:在HTML中设置事件处理程序时,onclick属性可以写成OnClick,但在JS代码(或者在XHTML文档)中,必须使用小写的onclick.
1.2、空格、换行符、格式控制符
JS会忽略程序中的标识之间的空格.多数情况下,JS同样会忽略换行符.由于可以在代码中随意使用空格和换行,因此可以采用整齐,一致的缩进来形成统一的编码风格,从而提高代码的可读性.
除了可以识别普通的空格符(\u0020),JavaScript还可以识别如下这些表示空格的字符:水平制表符(\u0009)、垂直制表符(\u000B)、换页符(\u000C)、不中断空白 (\u00A0)、字节序标记 (\uFEFF),以及在Unicode中所有Zs类别的字符。JavaScript将如下字符识别为行结束符:换行符(\u000A),回车符(\u000D),行分隔符(\u2028),段分隔符(\u2029)。回车符加换行符在一起被解析为一个单行结束符。
Unicode格式控制字符,比如“从右至左书写标记”(\u200F)和“从左至右书写标记”(\u200E),控制着文本的视觉显示,这对于一些非英语文本的正确显示来说是至关重要的,这些字符可以用在JavaScirpt的注释、字符串直接量和正则表达式直接量中,但不能用在标识符(比如,变量名)中。但有个例外,零宽连接符(\u200D)和零宽非连接符(\uFEFF)译注6是可以出现在标识符中的,但不能作为标识符的首字符。上文也提到了,字节序标记格式控制符(\uFEFF)被当成了空格来对待。
1.3.Unicode转义序列
在有些计算机硬件和软件里,无法显示或输入Unicode字符全集(比如:é)。为了支持那些使用老旧技术的程序员,JS定义了一种特殊序列,使用6个ASCII字符来代表任意16位Uniocde内码.这些Uniocde转义序列均以\u为前缀,其后跟随4个十六进制数(使用数字以及大写或小写的字母A~F表示).这种Unicode转义写法可以用JS字符串直接量,正则表达式直接量和标识符中(关键字除外).例如,字符é的Unicode转义写法为\u00E9,如下两个JavaScript字符串是完全一样的:
"café" === "caf\u00e9" // => true
Unicode转义写法也可以出现在注释中,但由于JavaScript会将注释忽略,它们只是被当成上下文中的ASCII字符处理,而且并不会被解析为其对应的Unicode字符。
但我们应该注意一点,Unicode是允许多种方法对同一字符进行编码的,用上述的é转义的例子来说明:
- 可以使用Unicode字符\u00E9表示
- 亦可用e\u0301(语调字符)表示
假如用这两个Unicode转义字符进行比较,计算机得出的结果反而不相同:
“\u00E9”===“e\u0301” //false
比较facé与café中的é是否相同?
facé与café中的é都转化为\u00E9或者都转化为e\u0301,才能比较facé与café中的é是否相同
1.4.标准化
Unicode标准
Unicode允许使用多种方法对同一个字符进行编码。
2.注释
"//":单行注释
"/*......*/":多行注释,不能嵌套。
3.直接量
程序中直接使用的数据值
4.标识符和保留字
标识符:一个名字而已,用来对变量和函数进行命名,或者循环语句中跳转的标志。
以字母、下划线、美元符开始,不能用数字开头。
保留字(关键字):保留一些标识符给自己用。
5.可选的分号
程序能识别的,分号可用可不用;无法识别的,分号必须用。
需要注意的是:return、break和continue语句的场景中,如果换行的话也会自动在换行处添加分号;同时“++”和“--”,如果是作为后缀的话,则必须在同一行
JavaScript权威指南--词法结构的更多相关文章
- JavaScript权威指南——词法结构(4)
标识符和保留字 1.标识符 标识符就是一个名字.在JavaScript中,标识符用来给变量.属性.函数和参数进行命名,或者用做某些循环语句中的跳转位置的标记. //变量 var identifier ...
- 【笔记】javascript权威指南-第二章-词法结构
词法结构 //本书是指:javascript权威指南 //以下内容摘记时间为:2013.7.28 字符集 UTF-8和UTF-16的区别?Unicode和UTF是什么关系?Unicode转义 ...
- 《javascript权威指南》读书笔记——第二篇
<javascript权威指南>读书笔记——第二篇 金刚 javascript js javascript权威指南 今天是今年的196天,分享今天的读书笔记. 第2章 词法结构 2.1 字 ...
- 《javascript权威指南》读书笔记——第一篇
<javascript权威指南>读书笔记——第一篇 金刚 javascript js javascript权威指南 由于最近想系统学习下javascript,所以开始在kindle上看这本 ...
- javascript基础语法——词法结构
× 目录 [1]java [2]定义 [3]大小写[4]保留字[5]注释[6]空白[7]分号 前面的话 javascript是一门简单的语言,也是一门复杂的语言.说它简单,是因为学会使用它只需片刻功夫 ...
- 《JavaScript权威指南 第六版 中文版》(一)
<JavaScript权威指南 第六版 中文版> 第二章 词法结构 2.1字符集 JavaScript是使用Unicode字符集编码写的. 2.1.1区分大小写 JavaScript是区分 ...
- 《JavaScript权威指南(第6版)(中文版)》PDF
简介自1996年以来,JavaScript的:权威指南已为JavaScript圣经程序员,程序员指南和全面的参考,以核心语言和客户端JavaScript API的Web浏览器定义.第6版包括HTML5 ...
- JavaScript权威指南 - 函数
函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...
- 【笔记】javascript权威指南-第六章-对象
对象 //本书是指:javascript权威指南 //以下内容摘记时间为:2013.7.28 对象的定义: 1.对象是一种复合值:将很多值(原始值或者对象)聚合在一起,可以通过名字访问这些值. ...
随机推荐
- 怎样在QML应用中创建一个Context Menu
我们在非常多的系统中看见能够在屏幕的一个地方长按,然后就能够依据当前显示的上下文弹出一个菜单. 菜单中能够有一些选项,比方删除,改动该项.这样的一般在ListView或GridView中常见.今天,我 ...
- SSM框架关于后台返回JSON数据中显示很多不需要的字段为NULL
xml 配置 spring mvc 的 json 返回忽略 null 字段 <mvc:annotation-driven> <mvc:message-converters regis ...
- spring MVC学习(二)---配置相关的东西
1.在上一节中我们提到过每一个DispatcherServlet都会有一个上下文 (WebApplictionContext),并且继承了这些上下文中的bean,其中以一些"特殊" ...
- spring 启动过程
首先,对于一个web应用,其部署在web容器中,web容器提供其一个全局的上下文环境,这个上下文就是ServletContext,其为后面的spring IoC容器提供宿主环境: 其次,在web.xm ...
- 3.MySQL必知必会之检索数据-SELECT语句
本章将介绍如何使用SELECT语句从表中检索一个或多个数据列. 1.SELECT语句 SQL语句是由简单的英语单词构成的.这些单词称为关键字,每个SQL语句都是由一个或多个关键字构成的.大概,最经常使 ...
- DevOps架构实践
1. 场景 持续部署:业界没有统一明确地定义,简单理解为将集成结果部署到不同的环境供用户使用,并且立即反馈部署结果的实践,其中不同的环境包括:开发环境.测试环境.预发布环境.生产环境 持续部署两个核心 ...
- TOSCA自动化测试工具安装
1.下载链接 https://www.tricentis.com/software-testing-tools/ 2.免费试用14天, 弹出的页面输入邮箱地址--> 输入一堆信息-->点击 ...
- 如何建立DB2分区数据库?(转)
欢迎和大家交流技术相关问题:邮箱: jiangxinnju@163.com博客园地址: http://www.cnblogs.com/jiangxinnjuGitHub地址: https://gith ...
- 【转】安装Vue.js的方法
安装vue.js的方法 一.简介 Vue.js 是什么 Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量 ...
- [简明版] 有道云笔记Markdown指南
使用有道词典配合Markdown,可以快速准确做出美观精致的笔记,下面我们来看一下如何使用有道词典的MarkDown功能. 什么是Markdown?Markdown是一种轻量级的「标记语言」,通常为程 ...