位置: 编程技术 - 正文

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核心技术开发解密)

  • 符合条件的小型微利企业所得税税率为
  • 非金银首饰以旧换新增值税
  • 增值税是什么意思
  • 应付账款坏账了怎么处理
  • 个体户交了增值税又开负数发票怎么退税
  • 普通增值税发票税号
  • 公积金需要每月缴纳吗
  • 小公司可以不交五险一金吗
  • 分期收款开具发票可以吗
  • 用现金购买的股票
  • 返利抵扣货款
  • 账本印花税怎么做账
  • 二手车交易公司需要什么资质
  • 企业进项发票如何做账
  • 企业支付在哪里
  • 资源税纳税期限按月还是按季
  • 定额发票存根要盖章吗
  • 汇算清缴费用调增会计处理
  • 按键盘不起作用怎么办
  • win10误删系统软件怎么还原
  • 收到汇算清缴的现金
  • 你需要权限来执行操作是怎么回事
  • 红掌的养殖方法和注意事项
  • 股票公允价值减值怎么做账
  • 涉税专业服务机构是什么
  • 用现金报销差旅费,合规吗
  • 出租固定资产取得的收入属于收入要素吗
  • 短期借款利息计算
  • 产品成本核算方法
  • 特许权使用费20%
  • nvm for window
  • javascript移动鼠标
  • easyui表格分页
  • 增值税发票认证抵扣时间规定
  • 路径规划原理
  • 2023年网络安全专题教育
  • react redux reducer
  • RedHat6.5/CentOS6.5安装Mysql5.7.20的教程详解
  • mongodb 入门
  • 允许从销项税额中扣除的有
  • 不抵扣的进项税为什么要交税
  • 运输费抵扣进项税怎么算
  • 利润分配未分配利润期末有余额吗
  • 物业管理费专票税率是多少
  • 企业银行流水可以不给税务吗
  • 善意取得虚开增值税专用发票处理
  • 逾龄资产对企业的影响
  • 支付水电费会计
  • 财务费用为什么是向债权人支付的现金流量
  • 以后年度结转如何结转
  • 库存商品调价会计分录
  • 小规模纳税人发票怎么开
  • 生育津贴案件
  • 企业收到稳岗补贴需要交企业所得税吗
  • 补价占整个交易金额的比例
  • 五险一金的正确说法
  • 资本金账户资金允许
  • MySQL thread_stack连接线程的优化
  • mysql 5.7.17 winx64.zip安装配置方法图文教程
  • win10 64位开机卡在登录界面的解决办法
  • 在苹果电脑上怎么下载软件
  • 在windows的命令提示符下,命令名在实际输入时规定
  • mac os x 10.9.5
  • windows8开机蓝屏
  • WIN10系统如何修复
  • 深入理解关于教育两个大计
  • node.js 模块
  • python3 mongodb
  • unity jsonobject
  • web开发 java
  • js打开浏览器新的tab页
  • javascript入门·对象属性方法大总结
  • 深入理解新发展理念心得体会3篇
  • 电子税务局房产税税源信息采集
  • 辽宁税务遴选
  • 吉林省地方税务局
  • 继续教育学时申报是什么意思
  • 出口报价必须含增值税吗
  • 印花税由哪方缴纳
  • 眉山市两会2021
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设