JavaScript之三:常用类

三,原始类

1> Array类型

特点:

松类型数组,可变长型数组。

也可以在初始化时指定长度,初始化数组元素时填充的都是undefined。

属性:

length:数组长度

方法:

添加:末尾添加一个元素colors[colors.length] = "black";末尾添加一组元素concat(array);指定位置添加splice(fromIndex,0,insertElement0,insertElement1,...)

删除:指定个数删除splice(fromIndex,deleteNum);指定位置删除slice(fromIndex, endIndex)

替换:先删除后添加splice(fromIndex,deleteNum,insertElement0,insertElement1...)

排序:反序reverse();指定排序模式sort(compareFunction)

模仿特定数据结构:栈方法push(),pop();队列方法push(),shift();队列反向操作unshift(),pop()

转字符串:toString(),valueOf()方法会返回以,间隔的元素字符串,可通过join("||")方法改变间隔符。

 

2> RegExp类型

初始化:

var expression = /pattern/flags;

属性:

global,ignoreCase,multiline(前三个是flags),lastIndex(搜索的开始位置),source(表达式字符串);

构造函数属性(会随着执行过程变化):

input(输入字串),lastMatch(最近一次匹配字串),lastParen(最近一次匹配字符),leftContext(匹配字串的左边字串),rightContext(匹配字串的右边字串),multiline,对应简写$_,$&,$+,$`,$',$*,简写需通过[]访问。

方法:

匹配:exec(string)。即使设置了全局匹配,也只返回第一个匹配项,不会返回所有匹配项的集合,要想获得下一个,需要再次调用该方法。因此,每次调用,lastIndex,lastMatch,lastParen,leftContext,rightContext都可能变化。

测试:test(string)。 测试是否匹配。

 

3>Date类型

初始化:

没有参数初始化,时间为当天时间。参数本需要为某时间距1970年的毫秒数。但Date.parse()和Date.UTC()可将特定格式的字符串日期或数字日期转换为该毫秒,并且当参数为这些字符串或数字时,构造函数会自动调用Date.parse()和Date.UTC()先将参数转化为毫秒。

因此可var someDate = new Date("May 25, 2004"),也可var someTime = new Date(2005, 4, 5, 17, 55,55)。注意,月份和小时是以0开始的。

转字符串:

toLocalString()会根据浏览器设置的地区设置返回日期时间;toString()会返回军用格式时间;还有toDateString(),toTimeString(),toLocaleDateString(),toLocaleTimeString(),toUTCString()方法用于输出时间字符串。但是各浏览器实现有所不同,推荐使用getFullYear()/Month/Date()/Day/Hours/Minutes/Seconds获取具体日期数字,自己订制输出格式。

比较:valueOf()则返回毫秒,因此Date可直接用比较操作符比较。

 

4> Math对象

方法:

最大最小:max(),min()

绝对值:abs()

平方根:sqrt()

次幂:pow(num,power)

舍入:ceil(),floor(),round() 分别为向上进位,向下舍位和四舍五入。

随机数:random()随机生成一个介于0到1的随机数。如在lowerValue-upperValue区间生成随机数:Math.floor( Math.random() * (upperValue - lowerValue +1) + lowerValue );

 

5> Function类型

属性:

arguments:是一个类数组对象,包含传入函数中的所有参数。它还包含一个callee的指针属性,反指向该函数,应尽量通过该指针实现递归,因为函数名是可变的。

this:是函数所处作用域。比如在全局作用于中调用函数时,this对象引用就是window。

length:表示函数希望接受的命名参数的个数。

方法:

调用:apply(),call()。需要传递作用域和函数所需的参数。apply()的参数可通过arguments或数组传递;call()的参数必须一个一个传。注意,作用域通常传this,但真正强大的是可借此扩大该函数的作用域。

 

6> 内置对象

特性:

Global对象,俗称“兜底儿对象”,不属于任何对象的属性和方法,都是它的。自身还有isNaN(),isFinite(),parseInt(),parseFloat()等方法,可随时随地调用。访问Global对象可通过window对象,因为浏览器把这些方法都实现到window中了。

方法:

URI编码方法:encodeURI(),encodeURIComponent(),区别是前者将空格替换为%20,后者会将任何非标准字符编码。因此前者用于整个URI,后者用于附加在现有URI的字符串使用。对应解码的是decodeURI(),decodeURIComponent()。escape()和unescape()已被废弃,因为只支持ASCII。

 

URL 只能使用 ASCII 字符集来通过因特网进行发送。由于 URL 常常会包含 ASCII 集合之外的字符,URL 必须转换为有效的 ASCII 格式。

URL 编码使用 "%" 其后跟随两位的十六进制数来替换非 ASCII 字符。URL 不能包含空格。URL 编码通常使用 + 来替换空格。

将字符串当代码一样调用:eval()。要小心,避免直接将用户输入直接调用,会造成代码注入。

 

7> 基本包装类型

特性:

为了便于操作基本类型变量,JavaScript还提供了三个特殊引用类型:Boolean, Number, String。每当读取一个基本类型值的时候,后台就会先创建一个对应的基本包装类型的对象,因此可以调用基本包装类型的方法。当操作完成后,该实例将被销毁。引用类型和基本包装类型的不同就在于对象的生存周期不同。

只有在必要时才显示的创建基本包装类型,因为显示创建后,typeof会返回object,并在转换为Boolean时都是true。

a> Boolean类型

b> Number类型,有toFixed(),toExponential(),toPrecision()方法可将数字转换为字符串。

c> String类型,提供方法:

获取字符:charAt()获取字符;charCodeAt()获取字符码

连接:concat(),通常用+

切割:按个数切割substr(),参数是beginIndex, nums;按位置切割slice(),substring(),参数是beginIndex, endIndex

搜索:从头搜indexOf();从尾搜lastIndexOf()。可以通过参数指定搜索的起始位置

大小写转换:toLowerCase(),toLocaleLowerCase(),toUpperCase(),toLocaleUpperCase()

比较:localeCompare()

支持正则表达式的方法有:

匹配match(expr),返回匹配元素的数组。

搜索search(expr),返回第一个匹配项的索引。

替换replace(expr),如需全局替换,则需要在正则表达式中添加/g。替换字串还可以由匹配出的字串组合而成,如$&(lastMatch),$'(leftContext),$`(rightContext),$n。如果不指定替换字串,还可以制定一个自定义函数function(match, pos, originalText),来具体定制。

分割split(),可通过正则表达式指定分隔符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值