JavaScript对象是JavaScript 语言中固有的组件,而且与JavaScript 的执行环境无关。所以,无论在什么环境下都可以访问JavaScript对象。
在JavaScript 基本对象中,有一些是与数据类型类似的对象,例如表示字符串的String、表示布尔值的Boolean 以及表示数字的 Number 。这些对象封装了基本类型,并在其基本功能上进行一定的扩展。(Number 和String 对象实例都有各自特殊的属性,而唯独Boolean没有。然而,所有这3种对象都将从更高级的对象中继承属性和方法。)
此外,还有3种提供其他功能的内置对象,Math、Date 及 RegExp。Math 提供数学运算功能;Date 提供日期功能; RegExp 则是提供正则表达式功能的对象。虽然正则表达式异常神秘,但是正则表达式功能强大,模式匹配的功能可以在应用程序中对字符串进行精确的匹配。
JavaScript 还有另外一个内置的聚合对象,即 Array。事实上,JavaScript 中的所有对象都是数组,只是通常并没有将对象当成数组来访问而已。
一、布尔值 Boolean
1.初始值的设置:
实际上创建Boolean对象实例有不同的方法,这取决于其初始值是 false 还是 true 。
(1)如果创建的对象不指定初始值,那么该Boolean对象的默认值为false : var boolFlag = new Boolean();
(2)通过数字的方式设置初始值,例如用0表示false ,用1表示true: var boolFlag = new Boolean(0); var boolFlag = new Boolean(1;
(3)通过字面量true 和false 来创建和设定对象初始值,例如:var boolFlag1 = new Boolean(false); var boolFlag2 = new Boolean(true);
有趣的是,如果以空字符串创建Boolean 对象实例,那么对象的初始值将为false。如果以任何非空字符串创建Boolean对象实例,那么对象的初始值将为true 。
二、Number 对象、静态属性及实例方法
1.Number类的以下5个属性只可以通过Number 对象进行访问:
(1)Number.MAX_VALUE :JavaScript 所能表示的最大数值;
(2)Number.MIN_VALUE:JavaScript 所能表示的最小数值;
(3)Number.NaN:表示非数字;
(4)Number.NEGATIVE_INFINITY:表示负无穷大;
(5)Number.POSITIVE_INFINITY:表示正无穷大。
2.Number对象中有3种实例方法:
(1)toExponential:以字符串形式返回数值的指数格式;
(2)toFixed:以字符串形式返回数值的定点格式;
(3)toPrecision:以字符串形式返回数值的特定精度格式。
此外,valueOf 和toString 等全局方法同样适用于Number 实例。此外还有toLocaleString方法,返回与特定于区域的数值格式。
三、String 对象
String 对象 可能是最常用的JavaScript 内置对象,可以显式地通过new String 构造函数创建新的String对象,并作为参数传入字母量字符串: var sObject = new String ("Sample string");
String 对象实例的属性和方法:
属性 | 描述 |
---|---|
constructor | 返回创建字符串属性的函数 |
length | 返回字符串的长度 |
prototype | 允许您向对象添加属性和方法 |
方法 | 描述 | 参数 |
---|---|---|
charAt() | 返回指定索引位置的字符 |
表示位置的数字, 从0开始计数 |
charCodeAt() | 返回指定索引位置字符的 Unicode 值(字符编码) | |
concat() | 连接两个或多个字符串,返回连接后的字符串 | 字符串参数,把该字符串连接到String对象的字面量字符串 |
fromCharCode() | 将 Unicode 转换为字符串 | |
indexOf() | 返回字符串中检索指定字符第一次出现的位置 | 所查找的子字符串 |
lastIndexOf() | 返回字符串中检索指定字符最后一次出现的位置 | |
localeCompare() | 用本地特定的顺序来比较两个字符串 | |
match() | 找到一个或多个正则表达式的匹配 | 字符串和正则表达式 |
replace() | 替换与正则表达式匹配的子串 | |
search() | 检索(查找)与正则表达式相匹配的值 | |
slice() | 提取字符串的片断,并在新的字符串中返回被提取的部分(返回字符串的某个片段) | 该片段的起始和结束位置 |
split() | 把字符串分割为子字符串数组(根据特定的分隔符,分割字符串) | 分隔符和分割的最大数量 |
substr() | 从起始索引号提取字符串中指定数目的字符(返回子字符串) | 字符串的起始和结束位置 |
substring() | 提取字符串中两个指定的索引号之间的字符(返回子字符串) | |
toLocaleLowerCase() | 根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射 | |
toLocaleUpperCase() | 根据主机的语言环境把字符串转换为大写,只有几种语言(如土耳其语)具有地方特有的大小写映射 | |
toLowerCase() | 把字符串转换为小写 | 无 |
toString() | 返回字符串对象值 | |
toUpperCase() | 把字符串转换为大写 | 无 |
trim() | 移除字符串首尾空白 | |
valueOf() | 返回某个字符串对象的原始值 | 无 |
anchor | 创建一个HTML锚点 | 字符串和锚点名称 |
link | 返回针对链接的HTML | href 属性的URL值 |
biglink loditalicssmallstrikesubsup | 以HTML格式化String对象的字面量值,并将其返回 | 无 |
一些示例:
var str="This is a test string"; var s1=str.substr(5,8); //返回“is a tes”(两个参数是:开始位置和子字符串的长度) var s2=str.substring(5,8); //返回 “is ”(两个参数是:子字符串的开始位置和子字符串的结束位置)
如果结束位置小于开始位置,那么substring方法会自动交换这两个参数。
slice()方法和substring方法类似。但不会自动交换这两个参数,如果结束位置小于开始位置,则会返回空字符串,如下:
var s3=str.substring(4,1); //会自动交换参数位置变成(1,4),然后返回 his var s4=str.slice(4,1); // 返回空字符串
四、Math对象
与其他JavaScript 对象不同, Math对象 的所有属性和方法都是静态的。这表示要访问Math对象的属性和方法并不需要创建Math对象的实例;可以直接通过共享对象本身访问相关的方法和属性,如:var newValue=Math.sqrt(4);
Math 的属性:
属性 | 描述 |
---|---|
E | 返回算术常量 e,即自然对数的底数(约等于2.718)。 |
LN2 | 返回 2 的自然对数(约等于0.693)。 |
LN10 | 返回 10 的自然对数(约等于2.302)。 |
LOG2E | 返回以 2 为底的 e 的对数(约等于 1.414)。 |
LOG10E | 返回以 10 为底的 e 的对数(约等于0.434)。 |
PI | 返回圆周率(约等于3.14159)。 |
SQRT1_2 | 返回返回 2 的平方根的倒数(约等于 0.707)。 |
SQRT2 | 返回 2 的平方根(约等于 1.414)。 |
Math 的方法:
方法 | 描述 |
---|---|
abs(x) | 返回 x 的绝对值。 |
acos(x) | 返回 x 的反余弦值。 |
asin(x) | 返回 x 的反正弦值。 |
atan(x) | 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。 |
atan2(y,x) | 返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。 |
ceil(x) | 对数进行上舍入。 |
cos(x) | 返回数的余弦。 |
exp(x) | 返回 Ex 的指数。 |
floor(x) | 对 x 进行下舍入。 |
log(x) | 返回数的自然对数(底为e)。 |
max(x,y,z,...,n) | 返回 x,y,z,...,n 中的最高值。 |
min(x,y,z,...,n) | 返回 x,y,z,...,n中的最低值。 |
pow(x,y) | 返回 x 的 y 次幂。 |
random() | 返回 0 ~ 1 之间的随机数。 |
round(x) | 把数四舍五入为最接近的整数。 |
sin(x) | 返回数的正弦。 |
sqrt(x) | 返回数的平方根。 |
tan(x) | 返回角的正切。 |
五、Date 对象
在JavaScript中,Date对象那个可以用来创建日期实例。当创建了日期对象实例后,就可以使用不同的方法访问或修改日期(或者日期的分量),例如年、月、日等信息。
1.创建Date对象:new Date()
2.创建Date对象的另外4种方法:
var d = new Date(); var d = new Date(milliseconds); //自1970年1月1日12:00:00以来所经过的毫秒数 var d = new Date(dateString); //日期格式的字符串,如:(“March 12, 1980 12”)亦可不要时间:(“March 12, 2008”) var d = new Date(year, month, day, hours, minutes, seconds, milliseconds); //按照这个顺序哦!注意月份是0~11 !!
3.Date对象属性:
属性 | 描述 |
---|---|
constructor | 返回对创建此对象的 Date 函数的引用。 |
prototype | 使您有能力向对象添加属性和方法。 |
4.Date对象方法:
方法 | 描述 |
---|---|
getDate() | 从 Date 对象返回一个月中的某一天 (1 ~ 31)。 |
getDay() | 从 Date 对象返回一周中的某一天 (0 ~ 6)。 |
getFullYear() | 从 Date 对象以四位数字返回年份。 |
getHours() | 返回 Date 对象的小时 (0 ~ 23)。 |
getMilliseconds() | 返回 Date 对象的毫秒(0 ~ 999)。 |
getMinutes() | 返回 Date 对象的分钟 (0 ~ 59)。 |
getMonth() | 从 Date 对象返回月份 (0 ~ 11)。 |
getSeconds() | 返回 Date 对象的秒数 (0 ~ 59)。 |
getTime() | 返回 1970 年 1 月 1 日至今的毫秒数。 |
getTimezoneOffset() | 返回本地时间与格林威治标准时间 (GMT) 的分钟差。 |
getUTCDate() | 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。 |
getUTCDay() | 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。 |
getUTCFullYear() | 根据世界时从 Date 对象返回四位数的年份。 |
getUTCHours() | 根据世界时返回 Date 对象的小时 (0 ~ 23)。 |
getUTCMilliseconds() | 根据世界时返回 Date 对象的毫秒(0 ~ 999)。 |
getUTCMinutes() | 根据世界时返回 Date 对象的分钟 (0 ~ 59)。 |
getUTCMonth() | 根据世界时从 Date 对象返回月份 (0 ~ 11)。 |
getUTCSeconds() | 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。 |
getYear() | 已废弃。 请使用 getFullYear() 方法代替。 |
parse() | 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。 |
setDate() | 设置 Date 对象中月的某一天 (1 ~ 31)。 |
setFullYear() | 设置 Date 对象中的年份(四位数字)。 |
setHours() | 设置 Date 对象中的小时 (0 ~ 23)。 |
setMilliseconds() | 设置 Date 对象中的毫秒 (0 ~ 999)。 |
setMinutes() | 设置 Date 对象中的分钟 (0 ~ 59)。 |
setMonth() | 设置 Date 对象中月份 (0 ~ 11)。 |
setSeconds() | 设置 Date 对象中的秒钟 (0 ~ 59)。 |
setTime() | setTime() 方法以毫秒设置 Date 对象。 |
setUTCDate() | 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。 |
setUTCFullYear() | 根据世界时设置 Date 对象中的年份(四位数字)。 |
setUTCHours() | 根据世界时设置 Date 对象中的小时 (0 ~ 23)。 |
setUTCMilliseconds() | 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。 |
setUTCMinutes() | 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。 |
setUTCMonth() | 根据世界时设置 Date 对象中的月份 (0 ~ 11)。 |
setUTCSeconds() | setUTCSeconds() 方法用于根据世界时 (UTC) 设置指定时间的秒字段。 |
setYear() | 已废弃。请使用 setFullYear() 方法代替。 |
toDateString() | 把 Date 对象的日期部分转换为字符串。 |
toGMTString() | 已废弃。请使用 toUTCString() 方法代替。 |
toISOString() | 使用 ISO 标准返回字符串的日期格式。 |
toJSON() | 以 JSON 数据格式返回日期字符串。 |
toLocaleDateString() | 根据本地时间格式,把 Date 对象的日期部分转换为字符串。 |
toLocaleTimeString() | 根据本地时间格式,把 Date 对象的时间部分转换为字符串。 |
toLocaleString() | 据本地时间格式,把 Date 对象转换为字符串。 |
toString() | 把 Date 对象转换为字符串。 |
toTimeString() | 把 Date 对象的时间部分转换为字符串。 |
toUTCString() | 根据世界时,把 Date 对象转换为字符串。 |
UTC() | 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。 |
valueOf() | 返回 Date 对象的原始值。 |
六、正则表达式和RegExp(英文全称:Regular Expression 有规律的表达式)
正则表达式是描述字符模式的对象。
正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具。
1.语法:
var patt=new RegExp(pattern,modifiers); 或者更简单的方式: var patt=/pattern/modifiers;
其中,
- pattern(模式) 描述了表达式的模式
- modifiers(修饰符) 用于指定全局匹配、区分大小写的匹配和多行匹配
注意:当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 )。比如,以下是等价的:
var re = new RegExp("\w+"); var re = /w+/;
2.修饰符:用于执行区分大小写和全局匹配:
修饰符 | 描述 |
---|---|
i | 执行对大小写不敏感的匹配。 |
g | 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。 |
m | 执行多行匹配。 |
3.方括号:用于查找某个范围内的字符:
表达式 | 描述 |
---|---|
[abc] | 查找方括号之间的任何字符。 |
[^abc] | 查找任何不在方括号之间的字符。 |
[0-9] | 查找任何从 0 至 9 的数字。 |
[a-z] | 查找任何从小写 a 到小写 z 的字符。 |
[A-Z] | 查找任何从大写 A 到大写 Z 的字符。 |
[A-z] | 查找任何从大写 A 到小写 z 的字符。 |
[adgk] | 查找给定集合内的任何字符。 |
[^adgk] | 查找给定集合外的任何字符。 |
(red|blue|green) | 查找任何指定的选项。 |
4.元字符(Metacharacter):是拥有特殊含义的字符:
元字符 | 描述 |
---|---|
. | 查找单个字符,除了换行和行结束符。 |
w | 查找单词字符。 |
W | 查找非单词字符。 |
d | 查找数字。 |
D | 查找非数字字符。 |
s | 查找空白字符。 |
S | 查找非空白字符。 |
匹配单词边界。 | |
B | 匹配非单词边界。 |