继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

数组,Math, string,Dom方法

欧米雪儿lyy
关注TA
已关注
手记 33
粉丝 64
获赞 315

数组方法: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 移除元素的属性名

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP