ECMAScript基础语法
我们在该系列上一篇文章中提到,Rhapsody 仅仅包含了JavaScript核心部分的实现,并没有包含操作HTML的对象或方法,Rhapsody中的JavaScript循序的是ECMAScript标准。ECMAScript借用了Java、C和Perl等语言的语法,例如,ECMAScript和Java 有一些关键的语法特性相同,当然也有一些完全不同。
基本语法规则
1)区分大小写
与 Java 一样,ECMAScript的变量、函数名、运算符以及其他一切东西都是区分大小写的。
2)标识符
- 标识符:变量、函数及其参数、属性的名字。
- 命名规则:第一个字符必须是一个字母、下划线_,或一个美元符号$。
- 推荐采用驼峰大小写格式,例如:personName
- 不能把关键字、保留字、true、false和null用作标识符。
- 标识符以外的字符可以是字母、下划线、美元符号、数字。
3)注释
- 单行注释:// 注释内容
- 多行注释:/*注释内容*/
4)语句
- 语句以分号";"结尾
- 花括号"{}"表示代码块,代码块表示一系列应该按顺序执行的语句,这些语句被封装在左括号"{"和右括号"}"之间
5)关键字和保留字
关键字可用于表示控制语句的开始或结束,或者用于执行特定操作等。按照规则,关键字也是语言保留的,不能用作标识符。例如:
- case
- catch
- else
- for
- function
- if
- ……
- abstract
- boolean
- byte
- char
- class
- const
- ……
数据类型
1)ECMAScript的数据类型分为:
基本数据类型:number,string,boolean,undefined,null
引用数据类型:Array,Object,Function
可以使用 typeof 方法查看数据类型,使用 instanceof 方法判断变量数据类型。
2)null和undefined的区别
null:对象不存在。
undefined:对象存在,访问属性或者方法不存在(对象未初始化)。
类型转换
ECMAScript 给开发者提供了大量简单的类型转换方法。大部分类型具有进行简单转换的方法,还有几个全局方法可以用于更复杂的转换。例如:
1)转换成字符串
Var iNum = 10;next.text = iNum.toString(); //输出 "10"next.text = iNum.toString(2); //输出 "1010"next.text = iNum.toString(8); //输出 "12"next.text = iNum.toString(10); //输出 "10"next.text = iNum.toString(16); //输出 "A"
采用 Number 类型的 toString() 方法的基模式,可以用不同的基输出数字,例如二进制的基是 2,八进制的基是 8,十六进制的基是 16。
2)转换成数字
var iNum = parseInt("12345red"); //返回 12345var iNum = parseInt("0xA"); //返回 10var iNum = parseInt("56.9"); //返回 56var iNum = parseInt("red"); //返回 NaN
如果要把字符串 "12345red" 转换成整数,那么 parseInt() 将返回 12345,因为当它检查到字符 r 时,就会停止检测过程。字符串中包含的数字字面量会被正确转换为数字,比如 "0xA" 会被正确转换为数字 10。不过,字符串 "22.5" 将被转换成 22,因为对于整数来说,小数点是无效字符。
var fNum = parseFloat("12345red"); //返回 12345var fNum = parseFloat("0xA"); //返回 NaNvar fNum = parseFloat("11.2"); //返回 11.2var fNum = parseFloat("11.22.33"); //返回 11.22var fNum = parseFloat("0102"); //返回 102var fNum = parseFloat("red"); //返回 NaN
parseFloat() 方法与 parseInt() 方法的处理方式相似,从位置 0 开始查看每个字符,直到找到第一个非有效的字符为止,然后把该字符之前的字符串转换成整数。
3)强制类型转换
使用强制类型转换可以访问特定的值,即使它是另一种类型的。
ECMAScript 中可用的 3 种强制类型转换如下:
Boolean()函数 - 把给定的值转换成 Boolean 型
Number()函数 - 把给定的值转换成数字(可以是整数或浮点数)
String() 函数 - 把给定的值转换成字符串
程序结构
ECMAScript程序的有三种基本结构:
顺序结构:按照顺序一条一条执行,从上至下
分支结构:执行的时候,可以根据条件进行选择,条件越多对应的结果越多,分支也就越多。if...else if...else...语句,switch语句
循环结构:重复的做一件事情,如果不给条件,就会无限执行。可以限制重复的次数。for循环,for...in循环,while循环,do while循环,forEach循环等
ECMAScript流程控制语句有:switch基本结构,switch穿透性及break,switch语句default,switch案例分数评级,for...in语句,while及do while语句,break及continue终止循环等等。
ECMAScript对象
ECMAScript对象是无特定顺序的值的数组。ECMAScript对象实际上是对象自身,并没有正式的类。如下所示对象的创建方式是用关键字 new 后面跟上实例化的类的名字:
var oObject = new Object();var oStringObject = new String();
在 ECMAScript 中,不能访问对象的物理表示,只能访问对象的引用。每次创建对象,存储在变量中的都是该对象的引用,而不是对象本身。
ECMAScript 拥有无用存储单元收集程序(garbage collection routine),意味着不必专门销毁对象来释放内存。当再没有对对象的引用时,称该对象被废除(dereference)了。运行无用存储单元收集程序时,所有废除的对象都被销毁。每当函数执行完它的代码,无用存储单元收集程序都会运行,释放所有的局部变量,还有在一些其他不可预知的情况下,无用存储单元收集程序也会运行。
把对象的所有引用都设置为 null,可以强制性地废除对象。例如:
var oObject = new Object;// do something with the object hereoObject = null;
ECMAScript对象具有以下特性:
封装 - 把相关的信息(无论数据或方法)存储在对象中的能力
聚集 - 把一个对象存储在另一个对象内的能力
继承 - 由另一个类(或多个类)得来类的属性和方法的能力
多态 - 编写能以多种方法运行的函数或方法的能力
在本系列的下一章节中,我们将介绍Rhapsody JavaScript对象。
【关于RHAPSODY】Rhapsody集成引擎在国际市场被公认为顶级产品,多年之前就已成为新西兰医疗信息化市场广泛使用的且唯一属于本土研发的ESB产品。Rhapsody集成引擎则常年居于KLAS®排名前三,今年更是与LYNIATE旗下的另一款产品Corepoint共获KLAS®排名冠亚军(Corepoint已连续十一年获得KLAS®排名冠军)。Rhapsody集成引擎可以通过在各医疗信息系统间建立易用、可靠、 安全和可扩展的互操作性, 帮助客户快速实现基于医院信息平台的优质互联互通解决方案,提升医院信息工作建设水平,并为互联互通成熟度等级测评等各项评测工作的开展打下坚实的基础。
目前,Rhapsody在中国已有300多家医院用户(多数为三甲医院),并呈现持续加速增长态势。另外,在国家医疗健康信息互联互通标准化成熟度评测方面,Rhapsody已助力近40家医院通过四级以上测评(其中3家通过了五级乙等评测)。
【关于LYNIATE】LYNIATE是由两家在全球医疗信息互联互通领域久经考验的医疗信息化企业Rhapsody(原Orion Health Rhapsody)和Corepoint本着资源互补、优势共享的原则,共同创立的全新品牌。两个行业领先的品牌强强联手,将技术、人才和良好的客户关系动态地结合在一起,有机融合彼此的产品和服务,形成协同效应,可以为用户提供更好的产品、服务以及行业领先的医疗信息互联互通解决方案,创造更大的价值。
面向新一代医疗信息化发展需求,Rhapsody和Corepoint的通力合作,将为LYNIATE在医疗信息化领域高端产品的研发奠定坚实基础,提高其业内技术应用的领先性。新品牌的建立也将为其在中国医疗信息化行业的进一步发展提供强有力的技术支撑,领跑其所在的集成引擎细分市场,为中国医疗行业用户提供更高品质的产品和完备的服务保障。
www.Lyniate.cn – The new home of Corepoint and Rhapsody.微信ID:Rhasody-APAC