【Java Script 入门之路之数据类型和值】
2015-11-23 10:13
225 查看
【Java Script 入门之路之数据类型和值】
计算机程序是通过操作值(value)来运行的。在一种程序设计语言中,能够表示并操作的值的类型称数据类型(datatype),而程序设计语言最基本的特征之一就是它所支持的数据类型的集合。JavaScript允许使用3种基本数据类型———数字、文本字符串和布尔值。此外,它还支持两种小数据类型null(空)和undefined(未定义),他们各自只定义了一个值。
除了这些基本的数据类型外,JavaScript还支持符合数据类型———对象(object)。还有另一种特殊的对象———函数(function)。除了函数和数组外,JavaScript语言的核心还定义了一些其他专用的对象。这些对象表示的不是新的数据类型,而是对象的新的类(class)(ps:这样说可能有点绕,以后会慢慢解释的!)。Date类定义的表示日期的对象,RegExp类定义的时表示正则表达式的对象(一种很强大的模式匹配工具)Error类定义的时表示JavaScript程序中发生的语法错误和运行时错误的对象。
数字(number)是最基本的数据类型,他们几乎无需解释。JavaScript和其他程序设计语言的不同之处在于它并不区别整数数值和浮点型数值。当一个数字直接出现在JavaScript程序中时,我们称它为数值直接量。在任何数值直接量前加负号(-)可以构成它的附属。但是负号是一元求反运算符,它不是数值直接量语法的一部分。JavaScript可以把数字格式化为字符串或者把字符串解析为数值。还有一些比较特殊的数值,当一个浮点值大于所能表示的最大值时,其结果是一个特殊的无穷大值,将输出为Infinity。同样一个负值比所能表示的最小的负值还小的时候,结果就是负无穷大,输出结果为-Infinity。
JavaScript为每个特殊的数值都定义了常量,这些常量有以下这些:
字符串(string)是由Unicode字符、数字、标点符号等组成的系列,它使JavaScript用来表示文本的数据类型。所谓字符串,就是由单引号或者双引号括起来的Unicode字符序列,其中可以含有0个或多个Unicode字符。JavaScript的内部特性之一就是能够连接字符串。如果将加好(+)运算符用于数字,那么它将把两个数字相加。但是,如果将它作用于字符串,它就会把这两个字符串连接起来,将第二个字符串附加在第一个之后,例如:
msg = "Hello ," + "world";
当一个字符串用于数字环境中,它也会自动地转换为一个数字。例如:
var product = "20" * "2"; // 结果为40
JavaScript中还有一个好玩的现象就是,当一个字符串减去(-)0或一个数字的时候,会有类型转换的操作。它会尝试将字符串转换为数字。但加法不行,它会使两个字符串进行连接。
数值数据类型和字符串数据类型可能的值都无穷多。布尔数据类型只有两个值,这两个合法的值分别由直接量true和false表示。一个布尔值代表的“真值”,另一个代表的是“假值”;布尔值很容易转换,从其他类型转换为布尔值也比较容易,而且往往是自动转换的。在数字环境中,true为1,而false为0。在字符串中则true就是字符串“true”,false就是字符串“false”。反过来,如果一个数字用在布尔值的地方,那么除了0和NaN以外的数字,都会转换为true。而字符串则是除了空字符串和空值还有未定义之外。都会转换为true。任何非空对象、数组或函数都转换为true。
函数(function)是一个可执行的JavaScript代码段,有JavaScript程序定义或由JavaScript实现预定义。虽然函数只定义一次,但是JavaScript程序却可以执行多次或调用它。JavaScript的函数可以带有实际函数可以带有实际参数或形式参数。JavaScript的一个重要特性是JavaScript代码可以对函数进行操作。在许多语言中,函数都只是语言语法特性,他们可以被定义,被调用,但却不是数据类型。JavaScript中的函数是真正的数值,这一点给语言带来了很大的灵活性。这就意味着函数可以被存储在变量、数组和对象中,而且函数还可以作为参数传递给其他函数,这是非常有用的。
对象(object)是已命名的数据的集合。这些已命名的数据通常被作为对象的属性来引用。要引用一个对象的属性,就必须引用这个对象,在气候加实心点和属性名。例如:
image.width
image.height
对象和属性在很多方面与JavaScript变量相似,属性可以是任何类型数据,包括数组、函数以及其他的对象,所以读者可能会见到如下的JavaScript代码:
document.myform.button
这里引用了一个对象的button属性,而这个对象本身又存储在对象的document的myform属性中。JavaScript的对象可以作为关联数组使用,因为他们能够将任意的数据值和任意的字符串关联起来。如果采用这种方式使用对象,那么要访问对象的属性就要采取不同的语法了:
数组(array)和对象一样是树脂的集合。所不同的时,对象中的每个数值都有一个名字,而数组的每个数值有一个数字,或者说是下标(index)。在JavaScript中,要获取数组中的某个值,可是使用数组名,在其后加上方括号粉笔起来的下标值即可。例如:
a[1];
这样可以得到数组a中下标为1的值。注意,数组的下标不能为负数,这里的下标只能是正整数。而且JavaScript并不支持多为数组,不过它的数组元素还可以是数组。由于JavaScript是一种非类型语言,因此数组元素不必具有相同的类型那个,所以,一个数组中可以有多个数据类型的值,例如:
var a = new Array();
a[0] = 1.11;
a[1] = 10;
a[2] = "hello";
a[3] = true;
a[4] = {x:1 , y:3};
上面将了JavaScript支持的所有的基本数据类型。日期和时间并不属于这些基本类型。但是JavaScript提供了一种表示日期和时间的对象类,可以用它来操作这种类型的数据。
var now = new Date();
var xmas = new Date(2015,11,23);
另外,Date对象还定义了函数,该函数可以把一个由字符串或数字表示的日期值转换成内部的毫秒表示,这对某些日期计算非常有用。
正则表达式为描述文本模式提供了丰富、强大的语法,他们常用于模式匹配以及实现查找并替换的操作。JavaScript采用了Perl程序设计语言的语法表示正则表达式。在JavaScript中,正则表达式是由RegExp对象表示的,可以使用RegExp()构造函数来创建它。和Date对象一样,RegExp对象并不属于JavaScript的基本数据类型,它只不过是所有JavaScript实现都支持的特殊对象类型。语法如下:
/[1-9][0-9]*/
正则表达式的语法比较复杂,在后面会详细的介绍它。
计算机程序是通过操作值(value)来运行的。在一种程序设计语言中,能够表示并操作的值的类型称数据类型(datatype),而程序设计语言最基本的特征之一就是它所支持的数据类型的集合。JavaScript允许使用3种基本数据类型———数字、文本字符串和布尔值。此外,它还支持两种小数据类型null(空)和undefined(未定义),他们各自只定义了一个值。
除了这些基本的数据类型外,JavaScript还支持符合数据类型———对象(object)。还有另一种特殊的对象———函数(function)。除了函数和数组外,JavaScript语言的核心还定义了一些其他专用的对象。这些对象表示的不是新的数据类型,而是对象的新的类(class)(ps:这样说可能有点绕,以后会慢慢解释的!)。Date类定义的表示日期的对象,RegExp类定义的时表示正则表达式的对象(一种很强大的模式匹配工具)Error类定义的时表示JavaScript程序中发生的语法错误和运行时错误的对象。
数字(number)是最基本的数据类型,他们几乎无需解释。JavaScript和其他程序设计语言的不同之处在于它并不区别整数数值和浮点型数值。当一个数字直接出现在JavaScript程序中时,我们称它为数值直接量。在任何数值直接量前加负号(-)可以构成它的附属。但是负号是一元求反运算符,它不是数值直接量语法的一部分。JavaScript可以把数字格式化为字符串或者把字符串解析为数值。还有一些比较特殊的数值,当一个浮点值大于所能表示的最大值时,其结果是一个特殊的无穷大值,将输出为Infinity。同样一个负值比所能表示的最小的负值还小的时候,结果就是负无穷大,输出结果为-Infinity。
JavaScript为每个特殊的数值都定义了常量,这些常量有以下这些:
常量 | 含义 |
Infinity | 表示无穷大的特殊值 |
NaN | 特殊的非数字值 |
Number.MAX_VALUE | 可表示的最大值 |
Number.MIN_VALUE | 可表示的最小值 |
Number.NaN | 特殊的非数字值 |
Number.POSITIVE_INFINITY | 表示正无穷大的特殊值 |
Number.NEGATIVE_INFINITY | 表示负无穷大的特殊值 |
msg = "Hello ," + "world";
当一个字符串用于数字环境中,它也会自动地转换为一个数字。例如:
var product = "20" * "2"; // 结果为40
JavaScript中还有一个好玩的现象就是,当一个字符串减去(-)0或一个数字的时候,会有类型转换的操作。它会尝试将字符串转换为数字。但加法不行,它会使两个字符串进行连接。
数值数据类型和字符串数据类型可能的值都无穷多。布尔数据类型只有两个值,这两个合法的值分别由直接量true和false表示。一个布尔值代表的“真值”,另一个代表的是“假值”;布尔值很容易转换,从其他类型转换为布尔值也比较容易,而且往往是自动转换的。在数字环境中,true为1,而false为0。在字符串中则true就是字符串“true”,false就是字符串“false”。反过来,如果一个数字用在布尔值的地方,那么除了0和NaN以外的数字,都会转换为true。而字符串则是除了空字符串和空值还有未定义之外。都会转换为true。任何非空对象、数组或函数都转换为true。
函数(function)是一个可执行的JavaScript代码段,有JavaScript程序定义或由JavaScript实现预定义。虽然函数只定义一次,但是JavaScript程序却可以执行多次或调用它。JavaScript的函数可以带有实际函数可以带有实际参数或形式参数。JavaScript的一个重要特性是JavaScript代码可以对函数进行操作。在许多语言中,函数都只是语言语法特性,他们可以被定义,被调用,但却不是数据类型。JavaScript中的函数是真正的数值,这一点给语言带来了很大的灵活性。这就意味着函数可以被存储在变量、数组和对象中,而且函数还可以作为参数传递给其他函数,这是非常有用的。
对象(object)是已命名的数据的集合。这些已命名的数据通常被作为对象的属性来引用。要引用一个对象的属性,就必须引用这个对象,在气候加实心点和属性名。例如:
image.width
image.height
对象和属性在很多方面与JavaScript变量相似,属性可以是任何类型数据,包括数组、函数以及其他的对象,所以读者可能会见到如下的JavaScript代码:
document.myform.button
这里引用了一个对象的button属性,而这个对象本身又存储在对象的document的myform属性中。JavaScript的对象可以作为关联数组使用,因为他们能够将任意的数据值和任意的字符串关联起来。如果采用这种方式使用对象,那么要访问对象的属性就要采取不同的语法了:
image["width"] image["height"]
数组(array)和对象一样是树脂的集合。所不同的时,对象中的每个数值都有一个名字,而数组的每个数值有一个数字,或者说是下标(index)。在JavaScript中,要获取数组中的某个值,可是使用数组名,在其后加上方括号粉笔起来的下标值即可。例如:
a[1];
这样可以得到数组a中下标为1的值。注意,数组的下标不能为负数,这里的下标只能是正整数。而且JavaScript并不支持多为数组,不过它的数组元素还可以是数组。由于JavaScript是一种非类型语言,因此数组元素不必具有相同的类型那个,所以,一个数组中可以有多个数据类型的值,例如:
var a = new Array();
a[0] = 1.11;
a[1] = 10;
a[2] = "hello";
a[3] = true;
a[4] = {x:1 , y:3};
上面将了JavaScript支持的所有的基本数据类型。日期和时间并不属于这些基本类型。但是JavaScript提供了一种表示日期和时间的对象类,可以用它来操作这种类型的数据。
var now = new Date();
var xmas = new Date(2015,11,23);
另外,Date对象还定义了函数,该函数可以把一个由字符串或数字表示的日期值转换成内部的毫秒表示,这对某些日期计算非常有用。
正则表达式为描述文本模式提供了丰富、强大的语法,他们常用于模式匹配以及实现查找并替换的操作。JavaScript采用了Perl程序设计语言的语法表示正则表达式。在JavaScript中,正则表达式是由RegExp对象表示的,可以使用RegExp()构造函数来创建它。和Date对象一样,RegExp对象并不属于JavaScript的基本数据类型,它只不过是所有JavaScript实现都支持的特殊对象类型。语法如下:
/[1-9][0-9]*/
正则表达式的语法比较复杂,在后面会详细的介绍它。
相关文章推荐
- java选择排序法
- java选择排序法
- java冒泡排序法
- java冒泡排序法
- Ubuntu14.04.3 64位环境下openjdk7编译
- Java String.getChars()
- javaweb学习总结(二十九)——EL表达式
- java多线程编程技术 +代码实例
- java多线程编程技术 +代码实例
- Java基础--- 其它对象
- java生成pdf文档
- Java自定义注解和运行时靠反射获取注解
- Java双例集合下Map接口及其常用实现类
- opencv for java HoughLinesP的使用
- Spring MVC中如何传递对象参数
- 自动化测试工具[原]
- Eclipse一些操作
- JAVA中三种URL连接方法
- 开源 java CMS - FreeCMS2.4 单位管理
- BasicDAO与SpringDAO区别,使用Hibernate验证,注解方式实现主键自增,注解方式注入外键(一对多)