位置: 编程技术 - 正文

Javascript核心读书有感之词法结构(javascript的核心组成部分)

编辑:rootadmin

推荐整理分享Javascript核心读书有感之词法结构(javascript的核心组成部分),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript核心原理,javascript的核心,javascript的核心语言对象包括,javascript核心技术,javascript核心参考手册,javascript的核心,javascript核心技术,javascript的核心,内容如对您有帮助,希望把文章链接给更多的朋友!

编程语言的词法结构是一套基础性的规则,用来描述你如何编写这门语言。作为语法的基础,它规定了变量名是怎么样的,如何写注释,以及语句之间是如何区分的。本节用很短的篇幅来介绍javascript的词法结构。

1.字符集

javascript程序是用Unicode字符集编写的,Unicode是ASCII和Latin-1的超集,并支持地区上几乎所有的语言。ECMAscript3要求javascript的实现必须支持Unicode2,1及后续版本,ECMAscript5则要求支持Unicode3及后续版本

i.区分大小写

javascript是区分大小写的语言,也就是说关键字、变量、函数名和所有的表述字符都必须采用一致的大小写 ,比如关键字while必须写成while,不能写成While或者WHILE。

但需要注意的是html并不区分大小写(尽管xhtml区分),由于它和客户端javascript联系紧密,因此很容易混淆。例如在html设置的处理事件中,onclick属性可以写成onClick,但在javascript中编写写成小写的onclick。

ii空格、换行符、和格式控制器

javascript会忽略程序中的标示(token)之间的空格,多数情况下,javascript同样会忽略换行符。由于可以在代码中随意使用空格和换行符,一次可以采用整齐和一致的缩进来形成统一的编码风格,提高代码的可读性。

javascript除了识别空格符(u)。javascript还师表如下标示空格的字符:水平制表符(u)、垂直制表符(uB)、换页符(uC)、不中断空白符(uA0)、字节序标记(uFEFF),以及在Unicode中所有Zs类别的字符。javascript将如下字符识别为结束符:换行符(uA),回车符号(uD),行分隔符(u),段分隔符号(u)。回车符加换行符在一起呗解析为一个单行的结束符。

Unicode格式控制字符(Cf类),比如“从右至左书写标记”(uF)和从“从左至右书写标记”(uE),控制着文本的视觉显示。这对一些非英语文本的正确显示来说是至关重要的,这些字符可以在javascript的注释,字符串直接量和正则表达式直接量中,但不能用在标示符(比如,变量名)中,但有个例外零宽连接符(uD)和零宽非连接符(uFEFF)是可以出现在标示符中,但不能作为标识符的手字符。上文也提到了,字节序标记格式控制符(uFEFF)被当成了空格来对待

iii.Unicode转义序列

在有些计算机硬件和软件里,无法显示或输入Unicode字符全集。为了支持哪些使用老旧技术的程序员,javascript定义了一种特殊序列,使用6个ASCII字符来代表任意位的Unicode内码。这些Unicode转义序列以u为前缀,其后跟随十六进制鼠(使用数字以及大小写字母A-F表示)。这种Unicode转义写法可以用在javascript字符串直接量、正则表达式之江路和标示符中(关键字除外)。例如字符é的Unicode转义写法为uE9,如下两个Javascript字符串完全是一样的。

"café" === "cafue9" => true Unicode转义写法可以出现在注释中,但是由于javascript会将注释忽略,他们只是被当成成上下文中的ascii字符处理,并不会接下到对于的Unicode字符

iiii标准化

Unicode允许使用多种方法对同一个字符进行编码。比如字符é可以使用Unicode字符uE9,也可以使用普通的ascii字符e跟随一个语调符号u ,在文本编辑器中,这两个编码显示的结果是一摸一样的,但是它们的二进制编码表示是不一样的,在计算机里也不相等。Unicode标准为索引字符定义了一个首选的代码格式,并给出了一个标准化的处理方式将文本转化为一种适合比较的标准格式,不会再对其它表示、字符串或者正则表达式做标准化处理。

2.注释

javascript支持两种注释方式,在行尾"//"之后的文本都会被javascript当做注释忽略掉的。此外/*和*/之间的文本也会当做注释。这种注释可以跨行书写,但不能有嵌套注释。

//单行注释/*** * */3.直接量

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

第3章会详细讲解数字和字符串直接量。正则表达式直接量会在第章讲解。更多福祉的表达式,可以写成数组或对象直接量。

{x:1,y:2} //对象 [1,2,3,4,5] //数组

4.标识符和保留字

标识符就是一个名字。在javascript中,标识符用来对变量和函数进行命名,或者用做javascript代码中某些循环语句中的跳转位置的标记。javascript标识符必须以字母。下划线、或者美元符号开始。后续的字符可以是字母。数字。下划线或者美元符号(数字是不许作为首字母出现的,一遍javascript可以轻易区分开标识符和数字)、下面是合法的标识符

Javascript核心读书有感之词法结构(javascript的核心组成部分)

处于可移植性和易于书写的考虑,通常我们只使用只使用ASCII字母和数字来书写标识符。然后需要注意的是,javascript允许标识符中出现Unicode字符全集中的字母和数字(从技术来将ECMAScript允许在标识符的首字符后面出现Unicode字符机制的Mn类,Mc类和P才类)、因此,程序员可以使用非英语的语言或者数学符号来书写标识符

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

javascript保留字

class const enum exportexport extends import super另外,这些关键字在普通的javascript中是合法的,但在严格模式下是保留字

implements let private public yield interface package protected static同样严格模式下对下面的标识符做了严格的限制,但不能做变量名、参数名和函数名。

arguments evaljavascript的具体实现可能定义独有的全局变量和函数,每一种特定的javascript运行环境(客户端)服务器等都有自己的一个全局属性列表,这一点是需要牢记的。(window对象来了解客户端javascript中定义全局变量和函数列表)

5.可选的分号

和很多编程语言一样,javascript使用分号(;)将语句分隔开。这对增强代码的可读性和整洁性是非常重要的,缺少分隔符一条语句结束就成了下一条语句的开始,反之亦然。在javascript中,各自语句独占一行,通常可以省略语句之间的分号(程序结尾处使用“}”花括弧之前的分号也可以省略)。很多javascript程序员(包括本书的代码示例)都是使用分号来明确标记语句的结束,即使在并不完全需要分号的时候也是如此,另一种风格是在任何可以省略分号时都将其省略,只有在不得不使用的时候才使用分号,不管哪种编程风格,关于javascript有几个细节需要注意。如下代码,第一个分号是可以省略的

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

a=3;b=4;需要注意的是,javascript并不是在所有的换行处都填补分号:只有在缺少了分号就无法正常解析代码的时候,javascript才会填补分号,换句话说(类似下面代码中的两处异常),如果当前的语句和随后的的非空格字符不能当成一个整体解析的话,javascript就在当前语句的结束处来填补分号,看下如下代码

var a a = 3 console.log(a)javascript将其解析为

var a;a=3;console.log(a); javascript给第一行处添加了分号,如果没有分号,javascript就无法解析代码中的var a a。第二个a可以单独当做一条语句“a;”,但javascript没有给第二行结尾处填补分号。因为它可以和第三行内容一起解析成"a=3;" .

有些语句的分隔规则会导致一些想不到的情形,这顿断码分成了两行,看起来是两条独立的语句。

var y = x + f (a+b).toString()第二行的圆括号却和第一行的f组成了一个函数调用,javascript会把这段代码看做

var y = x+f(a+b).toString();显然代码的本意不是这样,为了能让上述代码解析成两条不同的语句,必须手动填写行为的显示分号

通常来讲,如果一条语句以 ( [ / + -开始,那么它极有可能和前条语句组合在一起解析,以/ + -开始的语句不很常见,但以( [开始的语句则非常常见。至少在一些javascript编码符风格中是很常见的。有点程序员喜欢保守的在语句前边加上一个分号,这样,哪怕之前的语句被修稿了,分号被误删了,当前语句还是会正确的解析;如果当前语句和下一行语句无法合并解析。javascript则在第一行后填补分号,这是通用规则,但有两个列外。第一个例外是涉及到returnm,birak,he continue语句,如果这三个关键字后紧跟着换行。javascript则会在换行处填补分号。例如

例如

returntrue;而 javascript解析成

return;ture;而代码的本意是

return ture;也就是说return,break,contuine好的随后的表达式之间不能有换行,如果添加了换行,程序则在极有特殊情况才能报错。而且程序的调试很不方便。

第二个例子是涉及到++ --运算符时,这些表达式符号可以代表标识符表达式的前缀和后缀。如果将其又再后表达式,如果的将其用做后缀表达式。它和表达式应该看做一行。否则行尾将填补分号。

以上代码解析为

Javascript核心读书有感之语言核心 读此书之前,感谢淘宝技术团队对此javascript核心的翻译,感谢弗拉纳根写出此书。感谢你们无私的分享,仅以此笔记献给你们的辛勤付出。一:javascript

JavaScript基础函数整理汇总 这里给大家整理汇总了一些javascript的基础函数,都是比较常用和实用的。整理出来也有助于大家更好的理解javascript。scripttype="text/javascript"/*创建函数和

浅谈javascript的调试 最近比较吐槽,大家都知道,现在web前端相对几年前来说已经变得很重了,各种js框架,各种面对对象,而且项目多了,就会提取公共模块。这些模块的

标签: javascript的核心组成部分

本文链接地址:https://www.jiuchutong.com/biancheng/383895.html 转载请保留说明!

上一篇:js的toLowerCase方法用法实例(js中tolocalestring)

下一篇:Javascript核心读书有感之语言核心(javascript核心技术开发解密)

  • 个人所得税既有租房又有房贷
  • 汇兑损益结转贷方怎么调整到借方
  • 售后回租会计处理研究国外相关研究成果
  • 企业承担的法律责任有哪些保险
  • 工业企业外购存货的入账价值一般包括增值税吗
  • 原材料呆滞物料处理方法
  • 增值税税收返还政策
  • 抵缴以前年度多缴所得税如何做会计分录?
  • 新办建筑劳务公司有资质证书吗
  • 收据开17%的票税负因子是多少?
  • 个人公司转让协议怎么写
  • 营改增后不动产出租适用税率
  • 什么叫项目所在地
  • 开具发票超出企业经营范围属于虚开发票吗??
  • 公司股东认缴资质末到位导致公司破产应承担什么责任
  • 坏账损失如何连续计提
  • 个人网银测试要点
  • 残保金逾期未申报的税务怎么处理
  • 计提本月银行借款
  • 个税房租和房贷抵扣一样吗
  • 奖金收入纳税
  • 地方教育附加怎么算的?
  • 政府返还的资金如何处理
  • 新版edge浏览器如何打开ie浏览器
  • 消耗性生物资产如何结转成本
  • 决算报表是财务报表吗
  • php定义的异常
  • 电脑卡机动不了怎么重启
  • 苹果发布macOS13.3预览版
  • PHP aes (ecb)解密后乱码问题
  • 分配税后利润会计分录
  • 一天看小说十几个小时的人
  • laravel phpstudy
  • thinkphp yii
  • react moment
  • 开具负数发票的流程
  • php标准数据类型共有四种
  • php二进制字符串压缩
  • 出差补贴应该怎么入账
  • 外聘人员怎么申报个税
  • 跨年发票可以作为税前扣除的时限
  • 企业一直零申报不经营
  • 残保金最新
  • 装饰公司的开票范围
  • 收入少收钱账务处理
  • 固定资产折旧率如何计算
  • python有public
  • 报销货物运输费需要什么凭证
  • mysql数据库编码
  • 费用发票处理
  • 为什么合理损耗不计入成本
  • 应交增值税减免税款是什么意思
  • 应收代位追偿款会计分录
  • 预付款属于什么会计分录
  • 存货盘点后的检查
  • 半成品怎么核算成本做账
  • 帮别人维修东西怎么开票
  • 担保公司预计负债
  • 销户还能申请抚养费吗?
  • 银行承兑汇票怎么看
  • Mysql5.7.11在windows10上的安装与配置(解压版)
  • 腾讯云centos7有界面吗
  • centos 进程查询
  • LINUX系统管理员维护招聘
  • ubuntu18.04网络
  • igfxem是什么软件
  • 电脑预装软件是什么意思
  • windows10专业版界面预览
  • excel 工具栏
  • github 最火的项目
  • 教你用纸折一只会跳的小兔子,非常好玩,小朋友都喜欢
  • unity3d快速入门
  • js实现多继承
  • jquery返回顶部代码
  • jqueryui dialog
  • android下载图片并保存到本地
  • 税务局的前身是什么
  • 江西省联考成绩查询系统入口官网
  • 小米之家可以
  • 河北地税网上申报纳税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设