3.1 JavaScript系统内部类

Array内部类

数组是JavaScript的Array对象,可以使用new创建空数组对象,也可以用初始化数据创建数组对象。数组元素下标从0开始,通过数组名及下标可访问指定的数组元素,未赋值元素默认undefined。数组长度自动可变,可以添加任意多个任意类型值的元素,若元素个数超过数组长度,则自动增加数组长度。

使用Array内部类创建数组对象
格式:
var 数组对象名 = new Array(); 创建空数组对象
var 数组对象名 = new Array(长度); 创建具有初始长度的数组对象
var 数组对象名 = new Array(数据1, 数据2, ……); 初始化创建数组对象
var 数组对象名 = [数据1, 数据2, ……]; 用数据创建数组不能用{}或()

数组对象的属性
length属性:该属性在创建数组时被系统自动初始化,在添加新元素或删除元素时系统自动更新。当编程人员人为设置修改length的值可以改变数组长度,设置值小于数组长度则数组截断变小,反之数组增大。

数组对象的方法

  1. toString(): 获取全部数组元素字符串
    toString()方法返回用逗号隔开的全部数组元素值字符串,但不显示未赋值的undefined。省略toString()—即单独使用数组名等价于调用toString()方法
  2. push( new1 [, new2, …] ): 向数组末尾添加元素
    push()方法可向数组末尾添加任意多个值为new1 [, new2, …]的数组元素,长度length自动增加,push()方法返回新长度。
  3. unshift( new1 [, newe2, …] ):在数组开头插入元素
    unshift() 可在数组开头插入任意多个值为new1 [, new2, …]的数组元素,长度length自动增加,unshift()方法返回新数组长度。注意:unshift()方法在IE中返回undefined。
  4. pop(): 删除最后一个元素
    pop()方法可删除数组的最后一个元素,数组长度length自动减1,返回被删除元素的值,如果数组已经为空,则不进行任何操作并返回undefined。
  5. shift(): 删除第一个元素
    shift()方法删除数组第一个元素,长度length自动减1,返回被删除元素的值,如果数组已经为空不进行操作返回undefined
  6. splice( index [, howmany[ , element1, element2,…]] ):插入删除或替换数组元素
    index: 指定添加、删除或替换的起始位置(第1个元素为0)
    element1, element2,… : 指定替换或插入的新元素值
    howmany: 该参数指定添加、删除、替换操作方式

注意:

  • 省略howmany及之后所有参数则删除从index到结尾的全部元素(IE不支持),返回被删除所有元素值(逗号隔开)。例如arr.splice(6) 删除第7个及以后的所有元素,IE浏览器必须使用arr.splice(6, arr.length-6)。

  • 取0值:在index位置处插入element1,…等新元素,无返回值

  • 非0数值:指定从index位置开始删除或替换元素的个数。如果之后没有元素值则执行删除,返回被删除所有元素值;如果指定了element元素值则执行替换,返回被替换的全部元素值(若被替换元素不足则同时插入新元素)。

  1. slice( start[, end] ): 获取子数组
    slice()方法返回从数组start到end-1位置所有元素组成的新数组,不改变原数组。start取负值则从数组尾部向前指定位置,-1为最后一个元素;end也可取负值,省略则提取从start到数组结尾的所有元素
  2. concat( arrayX[, arrayY, …] ): 连接指定数组
    concat()方法将当前数组与指定数组的全部元素依次连接成一个新数组,返回连接后的新数组对象,不改变原数组。方法参数可以是数组名,也可以是具体数值(连接新元素)
  3. sort( [排序函数名或匿名函数] ):对数组排序
    sort()方法对数组元素进行排序,直接改变原数组。省略参数默认将所有元素作为字符串并按字符编码升序排序。未赋值默认undefined的元素排序在最后,输出时不显示。
    如果需要按其他标准排序,则需要提供一个比较函数做参数。
  4. reverse(): 对数组反序
    reverse()方法颠倒数组元素的顺序,直接改变原数组

String内部类

字符串是JavaScript的基本数据类型,每个字符串常量、变量都是String对象。字符串对象的内容是不可变的,String对象的函数对字符串的处理都不会改变原字符串内容,而是将处理结果作为新的字符串对象返回。

使用String内部类创建字符串对象
格式: var 字符串对象名 = "字符串常量“
[ 注意:每个字符串常量、变量都是String对象 ]
字符串对象的属性
length属性:字符串对象只有一个长度属性(不是方法),可用于获取字符串所包含的字符个数。
字符串对象的方法

  1. charAt( [index] ): 获取指定位置的字符
    charAt()方法返回字符串中index指定位置的字符(第一个字符位置为0)。如果省略参数或取值为0则返回第一个字符,如果指定的index不在字符串长度的范围内则返回空值""。
  2. charCodeAt( [index] ): 获取指定位置字符的Unicode编码
    charCodeAt() 返回字符串中index指定位置字符的Unicode编码值,若返回值在0~255之间则属于ASCII字符。如果省略参数或取值为0则返回第一个字符的Unicode值,如果指定的index不在字符串长度的范围内则返回NaN
  3. substring( start[, end] ):获取指定范围的子字符串
    substring()方法返回当前字符串中从start到end-1指定范围内的子字符串。省略end则从start位置一直取到结尾。
    start与end必须是正数,相等返回空串,start大于end自动交换
  4. slice( start[, end] ): 获取指定范围的子字符串
    slice()方法与substring()方法的功能相同,区别是slice()方法的start与end参数可以取负值,即可从尾部向前查找指定位置,最后一个字符的位置为-1
  5. indexOf( 子字符串[, 起始位置] ): 正向检索查找子字符串
    indexOf()从指定位置开始向后查找匹配的子字符串(区分大小写),返回首次出现子串第1个字符的位置,没有找到返回-1。
    省略起始位置默认0,即从字符串开头开始查找。
  6. lastIndexOf( 子字符串[, 最后位置] ):逆向检索查找子字符串
    lastIndexOf()方法从指定位置开始向前查找匹配(区分大小写)的子字符串,返回首次出现指定子串第一个字符的位置(即最后一次出现的位置),如果没有找到返回-1。
    省略最后位置为最后一个字符,即从字符串结尾向前查找。
  7. localeCompare( string ): 比较字符串
    localeCompare()方法用本地排序规则比较两个字符串,如果当前字符串大于参数字符串返回正数,两个字符串相等返回0,当前字符串小于参数字符串返回负数。
  8. toLowerCase()/toUpperCase():字符串转换小写/大写字母
    字符串转换小写/大写字母
  9. fromCharCode( [code1[, code2, code3, … ]] ):获取Unicode码组成的字符串
    fromCharCode()方法返回由指定Unicode码组成的字符串,省略参数返回空值""。该方法为String类方法必须用类名调用
  10. anchor(anchorname): 生成页面锚点
    anchor()方法可在页面中自动生成名字为anchorname的HTML锚点标记。
    例如str.anchor(“myanchor”) 等价HTML标记str
  11. link(url): 生成页面超链接
    link()方法可在页面中自动生成为超链接标记: str
  12. fontcolor(color): 用指定颜色显示字符串
    fontcolor(color)方法可用指定颜色在页面中显示字符串,参数color必须是颜色名、#十六进制数或rgb(255,0,0)格式。
  13. ==fontsize(size): 用指定字号显示字符串 ==
    fontsize(size)方法可用指定字号在页面中显示字符串,参数size必须是数字1~7
  14. big()、small()等方法: 其他与页面显示有关的字符串方法

Date内部类

使用Date内部类创建日期时间对象

格式:
var 日期时间对象名 = new Date( [日期时间字符串] )
var 日期时间对象名 = new Date( [year, month, day] )
用构造方法可以创建由参数指定的日期时间对象,可以使用日期时间字符串、也可以使用年、月、日数组作参数,省略参数默认为机器系统当前的日期时间。
使用年、月、日数组作参数创建指定日期时间对象时,年份参数year必须是4位数,如果使用2位数则创建的日期为19xx年。
日期时间对象默认的显示格式为:英文月份 日期 年份 时:分:秒
例如:July 21 1983 01:15:00
日期对象可直接进行大小比较:if (myDate>today) { … }

getYear() 返回两位或四位数年份,已被getFullYear() 取代
getFullYear() / getUTCFullYear() 返回四位数年份
getMonth() / getUTCMonth() 返回月份(0 ~ 11)
getDate() / getUTCDate() 回某天几号
getDay() / getUTCDay() 返回一周中的星期几(日0 ~ 6)
getHours() / getUTCHours() 返回小时(0 ~ 23)默认24小时
getMinutes() / getUTCMinutes() 返回分钟(0 ~ 59)
getSeconds() / getUTCSeconds() 返回秒数(0 ~ 59)
getMilliseconds() / getUTCMilliseconds() 返回毫秒(0 ~ 999)
getTime() 返回1970.1.1至当前对象的毫秒数,等价valueOf()
getTimezoneOffset() 返回本地与格林威治时间的分钟差GMT
Date.parse(日期时间字符串或日期对象) 类方法
返回指定日期与1970.1.1日00:00:00相隔的毫秒数
Date.UTC(y, m, d [, h [, m [, s [, ms]]]]) 类方法
返回指定日期距世界时1970.1.1日00:00:00的毫秒数

setYear(year) 设置两位或四位年份,已被setFullYear() 代替
setFullYear( year [, month [, day]] )
setUTCFullYear( year [, month [, day]] )
设置四位数字的年份 [, 0 ~ 11月份 [,1 ~ 31日子]]
setMonth( month [, day] ) / setUTCMonth( month [, day] ) 设置0-11月份 [,1 ~ 31日子]
setDate( day ) / setUTCDate( day ) 设置1~31日子
setHours( hour[, min[, sec[, millisec]]] )
setUTCHours( hour[, min[, sec[, millisec]]] )
setMinutes( min[, sec[, millisec]] )
setUTCMinutes( min[, sec[, millisec]] )
设置0 ~ 59分钟 [, 0 ~ 59秒 [, 0 ~ 999毫秒值 ]]
setSeconds( sec[, millisec] ) / setUTCSeconds( sec[, millisec] ) 设置0 ~ 59秒 [, 0 ~ 999毫秒值 ]
setMilliseconds( millisec ) / setUTCMilliseconds( millisec ) 设置0 ~ 999毫秒值
setTime( millisec ) 根据1970.1.1日00:00:00向后(负数向前)的毫秒数设置日期时间

日期时间对象的方法 —— 显示日期时间的方法

valueOf()返回1970.1.1至当前对象毫秒数,等价getTime()
返回1970.1.1至当前对象毫秒数,等价getTime()返回Date默认格式字符串, toString()可省略
toDateString()返回Date对象的日期部分字符串
toTimeString()返回Date对象的时间部分字符串,默认24小时制
toUTCString()返回Date对象世界时字符串
toGMTString()返回Date格林威治字符串,用toUTCString()取代
toLocaleString()返回本地格式的日期、时间字符串(24小时制)
toLocaleDateString()返回本地格式的日期部分字符串
toLocaleTimeString()返回本地格式时间字符串默认24小时制

Boolean内部类

使用Boolean内部类创建布尔对象

格式: var 布尔对象名 = new Boolean([表达式])
省略表达式或取值为0、-0、null、""、false、undefined、NaN则创建值为false的对象,否则(包括用字符串"false"作参数)创建值为true的对象

布尔对象的属性
constructor 对创建此对象的构造函数的引用
prototype 用于给对象添加新的属性和方法
注意:上面两个属性这是所有JavaScript内置对象都具有的属性

布尔对象的方法
valueOf() 返回对象的原始布尔值
toString() 返回对象逻辑值字符串,可以省略而只用对象名
toSource() 返回对象的源代码,有的浏览器可能不支持

Number内部类

使用Number内部类创建数值对象
格式: var 数值对象名 = new Number(表达式或数字字符串);

数值对象的属性
constructor 对创建此对象的构造函数的引用
prototype 用于给对象添加新的属性和方法

数值对象的方法
valueOf() 返回对象包装的数值
toString([radix]) 把对象包装的数字转换为指定基数的字符串
toLocaleString() 把对象包装的数字转换为本地格式字符串
toFixed([num]) 转换为四舍五入保留num位小数的字符串
toExponential([num]) 转换为保留num位小数的指数字符串
toPrecision([num]) 转换为保留num位有效数字的指数或定点字符串

RegExp正则表达式对象

正则表达式的概念
正则表达式是由普通字符及特殊元字符组成的字符串,用于校验字符串的构成语法
正则表达式的构成

  • 普通字符:除了特殊字符以外的所有大小写字母、数字、标点符号、包括转义字符、元字符都是正则表达式中的普通字符。
    注意说明:

正则表达式中 .(圆点或小数点) * + ? ^ $ | & { } [] ( ) 等字符是具有特定含义的特殊字符,使用这些字符本身时必须用“\”引导或使用代表它的转义字符。
正则表达式中保留了用“\”引导的转义字符:
\ 反斜线字符、’ 单引号、" 双引号、\0mnn 三位八进制字符mnn(第1位m取值0~3)、\xhh 两位十六进制字符hh、\uhhhh 四位十六进制字符hhhh、 \a报警符bell、\t跳格制表符、\n换行、\r回车、\f换页。

  • 元字符:是用于表示某一类字符的通用匹配符。
    符号有: . (圆点)、\d 、\D 、\w 、\W、\s 、\S 。

使用说明:
. 圆点代表除\n换行符以外的任何一个字符;圆点本身可用. 或\056、\u002E
\d 代表0~9中的任何一个数字字符,等价[0-9]
\D 代表除0~9以外的任何一个非数字字符,等价[^0-9]
\w 代表任何一个单词字符(字母、数字、下划线),等价[a-zA-Z0-9_]
\W代表任何一个非单词字符(字母、数字、下划线除外),等价[^\w]
\s 代表任何一个空格、制表、换页、换行空白字符, 等价[ \t\n\v\f\r](内有空格)
\S 代表任何一个\s除外的非空白字符,等价[^\s]

  • 定位、标识符:是用于表示字符串或正则表达式边界的符号。
    符号有: ^ 、 $ 、 \b 、 \B 、 ( ) 、 | 、 && 、 [ ] 、

^ 在文本中表示字符串开始(边界),在[]中表示不接受、不能使用某些字符
$ 表示整个字符串的结尾,对允许多行的字符串模式中也表示’\n’ '\r’回车换行符
\b 表示字符串行内一个单词的开始位置(边界,隐含之前匹配多个空白符)
\B 表示非单词边界

  • 贪婪限定符:贪婪(尽可能多的匹配)限定符可限定它前面的字符X允许出现的次数。
    符号有: X{n} 、 X{n,} 、 X{n,m} 、 X? 、 X* 、 X+ 。

X{n} X恰好n次。如yb{3}k 只匹配 “…ybbbk…”
X{n,} X至少n次。如yb{3,}k 可匹配 “…ybbbk…” 或 “…ybbbbbbbbk…”
X{n,m} X至少n次最多m次(n<=m),逗号前后不能有空格
如yo{3,5}k 只匹配 “…ybbbk…”、"…ybbbbk…" 与 “…ybbbbbk…”
X? X零或1次,等价X {0,1}。如yo?k 只匹配 “…yk…” 与 “…yok…”
X* X零或多次,等价X {0,}。如yo*k 可匹配 “…yk…” 或 “…yoooook…”
X+ X 1或多次,等价X {1,}。如yo+k 可匹配 “…yok…” 或 “…yooook…”
在以上符号后面如果再加上一个?或+其含义不变。

应用实例
[abc] 可匹配abc任一字符,而[^abc]则匹配除abc外的任一字符
[a-z] 表示a~z中任一个小写字母
[a-zA-Z] 匹配任一大小写字母
[a-d[m-p]] 匹配a-d或m-p中任一字母,等价[a-dm-p]
[a-z&&[def]] 匹配a~z任一字母但必须是def中的,等价[def]
[a-z&&[^m-p]] 匹配a~z中除了m-p中的任一字母,等价[a-lq-z]
[0-9.-] 匹配数字、小数点和负号中的任一字符

正则表达式对象的创建

用构造函数创建RegExp对象:var patt = new RegExp(“正则表达式” [, “模式flags”] );
用正则表达式隐式创建RegExp对象: var patt = /正则表达式/ [模式flags];
也可直接创建无名对象使用或作为函数参数: /正则表达式/ [模式flags]

说明:
flags是正则表达式对象模式标志:取值g、i或m,可以组合:
g标志: 创建全局检索正则表达式对象,以便分次循环检索所有匹配的文本,省
略g标志默认非全局模式,只能检索第1个匹配的文本。
i标志: 创建忽略大小写的正则表达式对象,省略i默认区分大小写
m标志:创建可跨多行检索的正则表达式对象,正则表达式中的^、$、\n字符可
匹配每行的开头和结尾,省略m默认不跨行检索

正则表达式对象的属性
global 是否全局模式,创建对象设置了g为true,否则false
ignoreCase是否区分大小写,对象设置了i为true,否则false
multiline 是否多行模式,创建对象设置了m为true,否则false
source 保存正则表达式源文本pattern,不包括定界符/…/,也不包括标志g、i、m
lastIndex 保存上次匹配文本之后第1个字符位置,是全局模式对象exec()或test()方法下次检索的起始依据。

创建对象时lastIndex初始值为0,之后由exec()或test()方法在找到匹配文本后自动记录,循环重复调用这两个方法即可遍历字符串中所有匹配的文本。
当exec()或test()找不到匹配文本时,自动设置lastIndex为0。
lastIndex属性是可读写的,如果在一个字符串中检索了某个子字符串之后再检索另一个新子字符串,则必须把这个属性设置为0。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值