JavaScript 数据类型和值
2007-04-02 22:17
288 查看
程序是通过操作值来运行的。用来表示并操作的值的类型成为数据类型。JavaScript包括三种基本数据类型——数字、文字字符串和布尔值,还支持两种小数据类型null(空)和undefined(未定义)。
此外,JavaScript还支持符合数据类型——对象。对象是值的集合。有序集合(数组)、函数(function)和已命名的无序集合都是对象。除此之外,JavaScript还定义了一些专用对象类(class),如表示日期的Date对象类,表示正则表达式的RegExp对象类,表示语法和运行时错误的Error对象类。
数字:
JavaScript不同于其他语言的一个特点是它不区分整型数值和浮点型数值,所有的数字都由浮点型表示。它采用IEEE754标准定义的64位浮点格式表示数字。
JavaScript支持十进制、十六进制和八进制数值直接量。需要注意的是ECMAScript标准不支持八进制直接量,而且不是所有的JavaScript都支持八进制数值,所以在程序中要尽量避免八进制直接量的使用。
在JavaScript中采用了大量的算术函数,来支持复杂的算术运算,这些函数都被保存在Math对象中,作为Math对象的属性使用。
---------------------------------------------------------------------------------------------
Math对象——核心参考手册和其后列表
数字的 toString()方法:toString()方法可以用它的参数指定的基数或底数(底数必须在2和36之间)把数字转换成字符串。
---------------------------------------------------------------------------------------------
JavaScript中还定义了一些特殊的数值来表达特殊情况下的数据的值。
Infinity 表示无穷大的特殊值
NaN 特殊的非数字值
Number.MAX_VALUE 可表示的最大数字
Number.MIN_VALUE 可表示的最小数字(与零最接近的数字)
Number.NaN 特殊的非数字值
Number.POSITIVE_INFINITY 表示正无穷大的特殊值
Number.NEGATIVE_INFINITY 表示负无穷大的特殊值
JavaScript还定义了函数isNaN()用来检测NaN值,isFinite()来检测一个数字是否是Nan、或正无穷大或负无穷大。
字符串:
JavaScript中的字符串包含在单引号或双引号中,在JavaScript中没有char字符类型,而是用长度为1的字符串来表示字符。
在JavaScript中,我们还可以使用转义序列把Unicode字符添加到字符串直接量中,这对于不支持完整Unicode字符集的地方非常有用。
我们在使用字符串的时候,可能会遇到字符串本身包含了单引号或双引号的情况,这是就需要用到JavaScript中定义的转义字符加单引号或双引号来表示,如“/'”或“/"”。JavaScript的转义序列有:
/0 NUL字符(/u0000)
/b 退格符(/u0008)
/t 水平制表符(/u0009)
/n 换行符(/u000A)
/v 垂直制表符(/u000B)
/f 换页符(/u000C)
/r 回车符(/u000D)
/" 双引号(/u0022)
/' 单引号或撇号(/u0027)
// 反斜杠(/u005C)
/xXX 由两位十六进制数值XX指定的Latin-1字符
/uXXXX 由四位十六进制数XXXX指定的Unicode字符
/XXX 由一位到三位八进制数(1到377)指定的Latin-1字符。ECMAScript不支持。
同Java语言一样,JavaScript用(+)号连接多个字符串。
JavaScript的字符串和数组一样从0开始索引。
------------------------------------------------------------------------------------------------------------------------------------------------
对字符串的属性和方法,length、charAt()、substring()、indexOf()等,参考核心参考手册的String对象和其后列表
------------------------------------------------------------------------------------------------------------------------------------------------
布尔值:
true和false,常用于JavaScript的控制结构。
函数:
函数(function)是一个可执行的JavaScript代码段,包括用户自定义函数和JavaScript预定义函数。
JavaScript函数相对于其它语言的一个重要特性是,JavaScript中的函数是一个真正的数据类型,这就意味着函数可以被存储在变量、数组和对象中,还可以作为参数传递个其它函数。
我们在定义函数时,除了用传统的:
function name(param,){ …… }
还可以用JavaScript特有的函数直接量的方法,这在某些高级脚本中非常有用:
var name = function(param,){ …… }
对象:
有着面向对象语言基础的程序员来说,一定知道对象就是数据的集合。JavaScript中的对象,其属性包括了存储在其中的变量和函数方法。这些属性都可以通过对象来调用(非常类似于Java)。
JavaScript中的对象可以作为关联数组使用,因为它们能够将任意的数据值和任意的字符串关联起来。如果采用这种方式使用对象,访问对象的方法要使用一个由方括号封闭起来的、包含所需属性名的字符串。如访问image对象的width和height属性:iamge["width"];image["height"]
ECMAScript v3定义了对象直接量的语法,使你能够创建对象并定义它的属性。对象直接量由一个由花括号中的列表构成,这个列表的元素是用冒号分隔的属性/值对,元素之间用逗号隔开。
如定义一个point对象:
var point={x:2.3,y=1.3}
对象直接量也可以嵌套,如:
var rectangle = {upperleft:{x:2,y:2},lowerright:{x:4,y:4}}
其中属性值不必是常量,也可以是任意的JavaScript表达式。
数组:
JavaScript中,要获得数组中的值,可以使用数组名,加上用方括号封闭起来的下标值。数组的下标从0开始。(这些都和Java数组一样)数组可以存放任何一种JavaScript数据类型,包括其它数组、对象或函数的引用。由于JavaScript是一种无类型语言,因此数组元素不必具有相同的数据类型。
数组的创建方法如下:
var a = new Array();
a[0] = 1.2;
a[1] = "JavaScript";
a[2] = true;
a[3] = {x:1,y:3};
var b = new Array(1.2,"JavaScript",true,{x:1,y:3});
var c = new Array(4);
数组直接量的定义与对象直接量定义类似,也可以嵌套,其属性值不必是常量:
var d = [1.2,"JavaScript",true,{x:1,y:3}];
而且数组直接量中还可以存放未定义
4000
的元素:
var e = [1,,,,5];
此外,JavaScript还支持符合数据类型——对象。对象是值的集合。有序集合(数组)、函数(function)和已命名的无序集合都是对象。除此之外,JavaScript还定义了一些专用对象类(class),如表示日期的Date对象类,表示正则表达式的RegExp对象类,表示语法和运行时错误的Error对象类。
数字:
JavaScript不同于其他语言的一个特点是它不区分整型数值和浮点型数值,所有的数字都由浮点型表示。它采用IEEE754标准定义的64位浮点格式表示数字。
JavaScript支持十进制、十六进制和八进制数值直接量。需要注意的是ECMAScript标准不支持八进制直接量,而且不是所有的JavaScript都支持八进制数值,所以在程序中要尽量避免八进制直接量的使用。
在JavaScript中采用了大量的算术函数,来支持复杂的算术运算,这些函数都被保存在Math对象中,作为Math对象的属性使用。
---------------------------------------------------------------------------------------------
Math对象——核心参考手册和其后列表
数字的 toString()方法:toString()方法可以用它的参数指定的基数或底数(底数必须在2和36之间)把数字转换成字符串。
---------------------------------------------------------------------------------------------
JavaScript中还定义了一些特殊的数值来表达特殊情况下的数据的值。
Infinity 表示无穷大的特殊值
NaN 特殊的非数字值
Number.MAX_VALUE 可表示的最大数字
Number.MIN_VALUE 可表示的最小数字(与零最接近的数字)
Number.NaN 特殊的非数字值
Number.POSITIVE_INFINITY 表示正无穷大的特殊值
Number.NEGATIVE_INFINITY 表示负无穷大的特殊值
JavaScript还定义了函数isNaN()用来检测NaN值,isFinite()来检测一个数字是否是Nan、或正无穷大或负无穷大。
字符串:
JavaScript中的字符串包含在单引号或双引号中,在JavaScript中没有char字符类型,而是用长度为1的字符串来表示字符。
在JavaScript中,我们还可以使用转义序列把Unicode字符添加到字符串直接量中,这对于不支持完整Unicode字符集的地方非常有用。
我们在使用字符串的时候,可能会遇到字符串本身包含了单引号或双引号的情况,这是就需要用到JavaScript中定义的转义字符加单引号或双引号来表示,如“/'”或“/"”。JavaScript的转义序列有:
/0 NUL字符(/u0000)
/b 退格符(/u0008)
/t 水平制表符(/u0009)
/n 换行符(/u000A)
/v 垂直制表符(/u000B)
/f 换页符(/u000C)
/r 回车符(/u000D)
/" 双引号(/u0022)
/' 单引号或撇号(/u0027)
// 反斜杠(/u005C)
/xXX 由两位十六进制数值XX指定的Latin-1字符
/uXXXX 由四位十六进制数XXXX指定的Unicode字符
/XXX 由一位到三位八进制数(1到377)指定的Latin-1字符。ECMAScript不支持。
同Java语言一样,JavaScript用(+)号连接多个字符串。
JavaScript的字符串和数组一样从0开始索引。
------------------------------------------------------------------------------------------------------------------------------------------------
对字符串的属性和方法,length、charAt()、substring()、indexOf()等,参考核心参考手册的String对象和其后列表
------------------------------------------------------------------------------------------------------------------------------------------------
布尔值:
true和false,常用于JavaScript的控制结构。
函数:
函数(function)是一个可执行的JavaScript代码段,包括用户自定义函数和JavaScript预定义函数。
JavaScript函数相对于其它语言的一个重要特性是,JavaScript中的函数是一个真正的数据类型,这就意味着函数可以被存储在变量、数组和对象中,还可以作为参数传递个其它函数。
我们在定义函数时,除了用传统的:
function name(param,){ …… }
还可以用JavaScript特有的函数直接量的方法,这在某些高级脚本中非常有用:
var name = function(param,){ …… }
对象:
有着面向对象语言基础的程序员来说,一定知道对象就是数据的集合。JavaScript中的对象,其属性包括了存储在其中的变量和函数方法。这些属性都可以通过对象来调用(非常类似于Java)。
JavaScript中的对象可以作为关联数组使用,因为它们能够将任意的数据值和任意的字符串关联起来。如果采用这种方式使用对象,访问对象的方法要使用一个由方括号封闭起来的、包含所需属性名的字符串。如访问image对象的width和height属性:iamge["width"];image["height"]
ECMAScript v3定义了对象直接量的语法,使你能够创建对象并定义它的属性。对象直接量由一个由花括号中的列表构成,这个列表的元素是用冒号分隔的属性/值对,元素之间用逗号隔开。
如定义一个point对象:
var point={x:2.3,y=1.3}
对象直接量也可以嵌套,如:
var rectangle = {upperleft:{x:2,y:2},lowerright:{x:4,y:4}}
其中属性值不必是常量,也可以是任意的JavaScript表达式。
数组:
JavaScript中,要获得数组中的值,可以使用数组名,加上用方括号封闭起来的下标值。数组的下标从0开始。(这些都和Java数组一样)数组可以存放任何一种JavaScript数据类型,包括其它数组、对象或函数的引用。由于JavaScript是一种无类型语言,因此数组元素不必具有相同的数据类型。
数组的创建方法如下:
var a = new Array();
a[0] = 1.2;
a[1] = "JavaScript";
a[2] = true;
a[3] = {x:1,y:3};
var b = new Array(1.2,"JavaScript",true,{x:1,y:3});
var c = new Array(4);
数组直接量的定义与对象直接量定义类似,也可以嵌套,其属性值不必是常量:
var d = [1.2,"JavaScript",true,{x:1,y:3}];
而且数组直接量中还可以存放未定义
4000
的元素:
var e = [1,,,,5];
相关文章推荐
- (4)JavaScript学习笔记 - 数据类型和值(续)
- javascript 数据类型和值(基础版)
- (4)JavaScript学习笔记 - 数据类型和值(续)
- 第三章 JavaScript 数据类型和值
- 犀牛书第3章 JavaScript数据类型和值(上篇)
- JavaScript数据类型,对象
- 浅谈javascript的数据类型检测
- JavaScript数据类型判定的总结笔记
- JavaScript中基本数据类型和引用数据类型的区别
- 【知识整理】javascript基础语法总结(2)——数据类型转换和运算符
- 再谈JavaScript的数据类型问题
- JavaScript中数据类型详解
- 安全检测JavaScript基本数据类型和内置对象
- javascript数据类型转换
- JavaScript基本数据类型和引用数据类型
- JavaScript数据类型
- javascript数据类型转换总结
- javascript中数据类型和引用类型之间的区别
- javascript学习之数据类型隐式转换
- (Frontend Newbie)JavaScript基础之常见数据类型