数组方法:15个方法;
数组的方法:
1、增、删、改
->push:向数组末尾追加新项
参数:一到多个,需要新增加的内容
返回值:新增后数组的最新长度
原有数组是否改变:变
ary[ary.length]=xxx =>向数组末尾追加一项新的内容,这种方式属于对象键值对的操作
ary.splice(ary.length,0,'x')
->unshift:向数组开头追加新项
参数:新增加的内容
返回值:新增后数组的最新长度
原有数组是否改变:变
ary.splice(0,0,'x')
->shift:删除数组第一项
参数:无
返回值:被删除的这一项内容
原有数组是否改变:变
ary.splice(0,1)
->pop:删除数组最后一项
参数:无
返回值:被删除的这一项内容
原有数组是否改变:变
ary.length-- =>删除数组最后一项
ary.splice(ary.length-1)
->splice
splice(n,m):从索引N开始删除M个元素,返回的结果是一个新的数组,数组中包含被删除的那些内容,原来数组会发生改变
splice(n) 从索引N开始删除到末尾
splice(0) 清空数组,原有的内容(被删除的)会以一个新数组返回
splice(n,m,x):从索引N开始删除M个元素,把删除的部分用X代替(替换),返回的结果依然是被删除的内容(放在新数组中的),原来数组改变
splice(n,0,x) 把X插入到索引N之前
2、查询
->slice(n,m):从索引N开始找到索引M处(不包含M),把找到的部分以一个新数组返回,原来的数组不变
slice(n) 从索引N开始找到末尾
slice(0) 数组的克隆,把原有数组克隆一份一模一样的新数组出来
<=> slice()
slice(-4,-1) 和字符串的相同,用总长度加负数索引获取到正数,然后按照正数索引去查找即可 例如:总长度为5 <=> slice(1,4)
===
var ary1=[12,23];
var ary2=ary1.slice(0); //->克隆的意义在于内容相同,但是隶属于不同的内容空间,属于两个独立的个体
ary2 ->[12,23]
ary1==ary2 ->FALSE 是不同的空间地址
->concat(数组/数字):把两个或者多个数组进行拼接,最后合并为一个数组,原来的数组不变
3、转换为字符串
->toString:把数组转换为字符串,原有数组不变,数组中的每一项在字符串中用逗号隔开
->join(字符):把数组中的每一项按照指定字符拼接成字符串,原有数组不变,和字符串中的SPLIT对应
4、排序和排列的
->reverse:把数组倒过来排列,原有数组改变
->sort:把数组进行排序
var ary=[1,3,2,4];
ary.sort() =>[1,2,3,4]
ary.sort(function(a,b){
return a-b;//->升序
return b-a;//->降序
})
ary=[12,14,24,4];
ary.sort() =>[12,14,24,4] 在传递参数的情况下,我们的SORT方法只适用于十位数以下的数字,处理十位数以上的数字,需要传递FUNCTION
=====后面讲的方法在IE6~8下不兼容
->indexOf/lastIndexOf:和字符串相同,获取当前项在数组中第一次/最后一次出现位置的索引,如果数组中没有这一项返回的结果是-1(在不考虑兼容的情况下,我们可以根据这个规律验证数组中是否包含某项)
->forEach:循环数组中的每一项(不支持函数返回值)
->map:循环数组中的每一项,相对于FOREACH来说,MAP可以把每一项的值进行修改(支持函数返回值,原来的遍历数组就会等于返回结果)
var ary=[12,23,34,45];
ary.forEach(function(item,index){
//->item:当前循环这一项的内容
//->index:当前循环这一项的索引
});
Math 10个方法
1、Math.abs:取绝对值
Math.abs(-12) =>12
Math.abs(12) =>12
2、Math.ceil:向上取整
Math.ceil(12.2) =>13
Math.ceil(12.0) =>12
Math.ceil(-12.2) =>-12
3、Math.floor:向下取整
Math.floor(12.999) =>12
Math.floor(-12.999) =>-13
4、Math.round:四舍五入
Math.round(12.49) =>12
Math.round(12.5) =>13 (正数包括五是入)
Math.round(-12.49) =>-12
Math.round(-12.5) =>-12 (负数包括五是舍)
Math.round(-12.51) =>-13
5、Math.max:获取一堆值中的最大值
Math.max(12,14,23,13,15) =>23
Math.max(12,14,'23','13',15) =>23
Math.max(12,14,'23','13px',15) =>NaN
6、Math.min:获取一堆值中的最小值
7、Math.PI:圆周率(3.141592653589793)
8、Math.sqrt:开平方
Math.sqrt(100) ->10
9、Math.pow:某个数的多少次幂(多少次方)
Math.pow(2,3) ->2的3次方 =>8
10、Math.random:获取[0~1)之间的随机小数
Math.round(Math.random()*(m-n)+n):获取[n~m]之间的随机整数
字符串方法:12个方法
1、charAt / charCodeAt
charAt:根据索引获取对应位置字符,等价于“str[索引]”,通过中括号方式获取,如果索引不存在,返回的结果是UNDEFINED,charAt做了处理,如果不存在返回的是空字符串
charCodeAt:获取指定索引位置的字符所对应的ASCII码值(UNICODE编码) http://www.asciima.com/
String.fromCharCode([UNICODE值]):根据ASCII值返回对应的字符
2、substr / substring / slice 字符串截取
substr(n,m):从索引N开始截取M个字符,如果M不写,就是截取到末尾,N也不写从开头截取,如果M大于最大长度,也是截取到末尾;如果N为负数,M则不起作用,倒着截取N个;
例如:
str='zhufeng@qq.com'
str.substr(-3) =>'com'
substring(n,m):从索引N开始,找到索引为M处(不包含M),把找到的截取;M不写也依然是截取到末尾;不支持负数索引;
slice(n,m):和SUBSTRING语法一样,但是可以支持负数索引
例如:
str='zhufeng@qq.com'
str.substring(-4,-1) =>''
str.slice(-4,-1) =>'.co' 用总长度+负数索引,得到一个正数索引,也就是我们需要的正向索引str.slice((14-4),(14-1)) 总长度14
3、toUpperCase / toLowerCase
toUpperCase:把字符串中的所有字符转化为大写
toLowerCase:把字符串中的所有字符转化为小写
4、indexOf / lastIndexOf
indexOf:获取当前某一个字符,在字符串中第一次出现位置的索引
lastIndexOf:最后一次出现的索引
数组中的indexof lastindexof 不兼容ie6-8
但是
如果该字符在字符串中存在,返回的结果是>=0的数字,不存在返回-1,我们根据这个规律可以验证,当前字符串中是否包含某一个字符
if(str.indexOf('z')>=0){
//->包含
}else{
//->不包含
}
5、split:按照某一个指定的分隔符,把字符串中转换为数组
var str='2017-07-18';
str.split('-'); =>["2017", "07", "18"]
6、replace([old],[new]):实现字符串的替换,在不使用正则的情况下,每一次执行这个方法,只能替换一次
var str='2017-07-18';
str=str.replace('-','/'); =>"2017/07-18"
str=str.replace('-','/'); =>"2017/07/18"
DOM的方法:
【获取dom元素的8个方法】
document.getElementById("id名")
document.getElementsByClassName('class名')
document.getElementsByTagName('标签名')
document.getElementsByName('name属性')
document.documentElement =>html
document.body=>body
document.querySelector('css选择器') =>获取一个
document.querySelectorAll('css选择器') =>获取多个
【节点关系属性7个】
childNodes 获取的是所有的子节点
children 获取的是所有的元素子节点 (标签)
parentNode 获取的元素父节点
previousSibling 获取的是上一个哥哥节点
nextSibling 获取的是下一个弟弟节点
firstChild 获取的是第一个子节点
lastChild 获取的是最后一个子节点
【节点类型4个】
nodeType nodeName nodeValue
元素节点 1 大写的标签名 null
文本节点 3 #text 文本的内容
注释节点 8 #comment 注释的内容
document 9 #document null
【while循环的语法】
while(条件){
只要条件成立我一直执行循环体中的代码
}
【操作dom元素9个方法】
1)document.createElement() 创建一个标签元素
2)容器.appendChild(我们要添加的元素) 把我们创建的标签插到指定的容器(末尾)
3)oldVal.insertBefore(newVal,oldVal) 把一个元素添加另一个元素的前面
4)oldVal.replaceChild(newVal,oldVal) 一个元素把另一个元素替换掉
5)元素.cloneNode() 把元素克隆一份 true(深度克隆) false
6)document.body.removeChild(我们要移除的元素)
7)setAttribute 设置元素的属性名 (会在html结构中体现出来)
8)getAttribute 获取元素的属性名
9)removeAttribute 移除元素的属性名