本教程操作环境:windows7系统、javascript1.8.5版、DellG3电脑。
数组创建方式
检测数组
确定某个值到底是否是数组
调用数组的toString()方法会返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串。
分割字符串
toLocalString()方法和toString()方法,在默认情况下都会以逗号分割的字符串的形式返回。而如果使用join()方法,join()方法只接收一个参数。
数组也可以想栈一样,既可以插入和删除项的数据结构。栈是一种LIFO(Last-In-First-Out,后进先出)的数据结构,也就是最新添加的那项元素最早被删除。而栈中项的插入(叫做推入)和移除(叫做弹出),只发生在一个位置——栈的顶部。数组专门提供了push()和pop()方法,以便实现类似栈的行为。
push()方法
可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。
从数组末尾移除最后一项,减少数组的length值,然后返回移除的项。
栈数据结构的访问规则是LIFO(后进先出),而队列数据结构的访问规则是FIFO(First-In-First-Out,先进先出)。队列在列表的末端添加项,从列表的前端移除项。由于push()是向数组末端添加项的方法,因此要模拟队列只需一个从数组前端取得项的方法。实现这一操作的数组方法就是shift(),它能够移除数组中的第一个项并返回该项,同时将数组长度减1。结合使用shift()和push()方法,可以像使用队列一样使用数组。
shift()方法
ECMAScript还为数组提供了一个unshift()方法。顾名思义,unshift()与shift()的用途相反:它能在数组前端添加任意个项并返回新数组的长度。因此,同时使用unshift()和pop()方法,可以12从相反的方向来模拟队列,即在数组的前端添加项,从数组末端移除项。
数组中已经存在两个可以直接用来重排序的方法:reverse()和sort()。
reverse()方法
reverse翻转数组项的顺序
默认情况下,sort()方法按升序排列——即最小的值位于最前面,最大的值排在最后面。为了实现排序,sort()方法会调用每个数组项的toString()转型方法,然后比较得到的字符串,以确定如何排序。即使数组中的每一项都是数值,sort()方法比较的也是字符串。如下所示。
因此sort()方法可以接收一个比较函数作为参数,以便我们指定哪个值位于哪个值的前面。以完成数组中数值的升序和降序功能
比较函数接收两个参数,如果第一个参数位于第二个参数之前则返回一个负数,如果两个参数相等则返回0,如果第一个参数位于第二个参数之后则返回正数。举例:
操作方法
ECMAScript为操作已经包含在数据中项提供了许多方法。其中包含了像concat()、slice()、splice()来对数组的项进行操作。
concat()方法
数组合并方法,一个数组调用concat()方法去合并另一个数组,返回一个新的数组。concat()接收的参数是可以是任意的。
slice()方法,它能够基于当前数组中一个或多个项创建一个新数组。slice()方法可以接受一或两个参数,既要返回项的起始和结束位置。
注意:slice()方法不会影响原始数组
splice()方法这个恐怕要算是最强大的数组的方法了,它有很多种用法。
splice()的主要用途是向数组的中路插入想。使用这种方法的方式则有3中。
splice()方法始终都会返回一个数组,该数组中包含从原始数组中删除的项(如果没有删除任何项,则返回一个空数组)。
ECMAScript5为数组实例添加了两个位置方法:indexOf()和lastIndexOf()。这两个方法都接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中,indexOf()方法从数组的开头(位置0)开始向后查找,lastIndexOf()方法则从数组的末尾开始向前查找。
这两个方法都返回要查找的那项在数组中的位置,或者在没找到的情况下返回-1。在比较第一个参数与数组中的每一项时,会使用全等操作符;也就是说,要求查找的项必须严格相等(就像使用===一样)。举个栗子:
ECMAScript5为数组定义了5个迭代方法。
在这里常用的是后三个,我们只介绍后三个。
filter()方法
filter()函数,它利用指定的函数确定是否在返回的数组中包含某一项。例如要返回一个所有数值都大于2的数组,可以使用如下代码。
map()方法也返回一个数组,而这个数组的每一项都是在原始数组中的对应项上运行输入函数的结果。例如,可以给数组中的每一项乘以2,然后返回这些乘积组成的数组,如下所示
它只是对数组中的每一项运行传入的函数。这个方法没有返回值,本质上与使用for循环迭代数组一样。来看一个例子。
String类型的每个实例都有一个length属性,表示字符串中包含多个字符
1.字符方法
两个用于访问字符串中特定字符的方法是:charAt()和charCodeAt()。这两个方法都接收一个参数,即基于0的字符位置。其中,charAt()方法以单字符字符串的形式返回给定位置的那个字符(ECMAScript中没有字符类型)。
例如:
ECMAScript5还定义了另一个访问个别字符的方法。在支持此方法的浏览器中,可以使用方括号加数字索引来访问字符串中的特定字符,如下面的例子所示。
下面介绍与操作字符串有关的几个方法。
concat()
用于将一或多个字符串拼接起来,7返回拼接得到的新字符串。先来看一个例子。
ECMAScript还提供了三个基于子字符串创建新字符串的方法:slice()、substr()和substring()。这三个方法都会返回被操作字符串的一个子字符串,而且也都接受一或两个参数。第一个参数指定字符串的开始位置,第二个参数(在指定的情况下)表示字符串到哪里结束。
具体来说,slice()和substring()的第二个参数指定的是字符串最后一个字符后面的位置。
而substr()的第二个参数指定的则是返回的字符个数。如果没有给这些方法传递第二个参数,则将字符串的长度作为结束位置。
与concat()方法一样,slice()、substr()和substring()也不会修改字符串本身的值——它们只是返回一个基本类型的字符串值,对原始字符串没有任何影响。请看下面的例子。
在传递给这些方法的参数是负值的情况下,它们的行为就不尽相同了。其中,slice()方法会将传入的负值与字符串的长度相加,substr()方法将负的第一个参数加上字符串的长度,而将负的第二个参数转换为0。最后,substring()方法会把所有负值参数都转换为0。下面来看例子
当第二个参数是负值时,这三个方法的行为各不相同。slice()方法会把第二个参数转换为7,这就相当于调用了slice(3,7),因此返回"low"。substring()方法会把第二个参数转换为0,使调用变成了substring(3,0),而由于这个方法会将较小的数作为开始位置,将较大的数作为结束位置,因此最终相当于调用了substring(0,3)。substr()也会将第二个参数转换为0,这也就意味着返回包含零个字符的字符串,也就是一个空字符串。
3.字符串位置方法
有两个可以从字符串中查找子字符串的方法:indexOf()和lastIndexOf()。这两个方法都是从一个字符串中搜索给定的子字符串,然后返回子字符串的位置(如果没有找到该子字符串,则返回-1)。这两个方法的区别在于:indexOf()方法从字符串的开头向后搜索子字符串,而lastIndexOf()方法是从字符串的末尾向前搜索子字符串
indexOf()和lastIndexOf()
ECMAScript5为所有字符串定义了trim()方法,删除字符串的前后空格.
ECMAScript中涉及字符串大小写转换的方法有四个.toLowerCase()、toLocaleLowerCase()、toUpperCase()和toLocaleUpperCase()。其中,toLowerCase()和toUpperCase()是两个经典的方法,而toLocaleLowerCase()和toLocaleUpperCase()方法则是针对特定地区的实现。对有些地区来说,针对地区的方法与其通用方法得到的结果相同,但少数语言(如土耳其语)会为Unicode大小写转换应用特殊的规则,这时候就必须使用针对地区的方法来保证实现正确的转换.
要创建一个日期对象,使用new操作符和Date构造函数即可,如下所示
Date对象的方法
日期格式化方法
Date类型还有一些专门用于将日期格式化为字符串的方法,这些方法如下。
URI编码方法
Global对象的encodeURI()和encodeURIComponent()方法可以对URI(UniformResourceIdentifiers,通用资源标识符)进行编码,以便发送给浏览器。有效的URI中不能包含某些字符,例如5空格。而这两个URI编码方法就可以对URI进行编码,它们用特殊的UTF-8编码替换所有无效的字符,从而让浏览器能够接受和理解。
一般来说,我们使用encodeURIComponent()方法的时候要比使用encodeURI()更多,因为在实践中更常见的是对查询字符串参数而不是对基础URI进行编码。
与encodeURI()和encodeURIComponent()方法对应的两个方法分别是decodeURI()和decodeURIComponent()。其中,decodeURI()只能对使用encodeURI()替换的字符进行解码。例如,它可将%20替换成一个空格,但不会对%23作任何处理,因为%23表示井字号(#),而井字号不是使用encodeURI()替换的。同样地,decodeURIComponent()能够解码使用encodeURIComponent()编码
1.Math对象的属性
Math对象包含的属性大都是数学计算中可能会用到的一些特殊值。下表列出了这些属性
2.min()和max()方法
Math对象还包含许多方法,用于辅助完成简单和复杂的数学计算。
其中,min()和max()方法用于确定一组数值中的最小值和最大值。这两个方法都可以接收任意多个数值参数,如下面的例子所示
例子:
要找到数组中最大或最小值,可以像下面这样用apply()方法
3.舍入方法
将小数值舍入为整数的几个方法:Math.ceil()、Math.floor()和Math.round()。这三个方法分别遵循下列舍入规则:
Math.random()方法返回大于等于0小于1的一个随机数
例子1:获取min到max的范围的整数
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!