函数返回值
我们之前的都是没有返回值,实际上我们可以用return将函数运行的结果返回出来,return后面别忘了分号!
如果不写return或者return后面跟着空的,返回的就是undefined类型
函数传参
我们对参数求和,如果我们就是2个数就和,那传2个参数就可以,如果参数不固定怎么办
我们传入的参数可以用arguments接收到,比如我们传入3个,显示长度为3,所以你就明白了。初始res=0,遍历过程中一直加就可以了
对于css,我们传如上图2个参数是获取样式,3个参数是赋值
我们可以定义一个这样的函数,当接收了3个参数和2个参数判断下,就可以实现给对象属性赋值和获取对象属性
如何取非行间样式
我们之前也知道样式在行间,我们可以用标签.style.属性名获取,但如果属性再样式表定义的呢,我们可以使用currentStyle,来替代style即可,然而马上就打脸,这个这能兼容IE,其他不行
我们可以按照如上图,使用getComputedStyle(a,b).属性获得,其中a参数我们传入对象,b参数据说传入什么内容都可以,这里起名getComputedStyle,是因为可能很多影响样式,计算机最终计算出来的结果,但是getComputedStyle只能支持ff,chrome浏览器
我们可以在用对currentStyle判断,如果OK,则使用,否则其他浏览器,则为undefined,我们就用getComputedStyle
因为浏览器设置可能很多需要兼容的地方,我们可以把获得属性封装成函数,以便我们多次使用
数组基础
我们之前var a=[1,2,3];声明一个数组
我们也可以var a=new Array(1,2,3);
两种定义效果一样
数组的长度为length属性,不过这个长度可以赋值,比如a=[1,2,3,4]
我们设置a.length=2,那么数组a就变成了[1,2],如果设置a.length=6,就会给数组添加2个undefined对象,
我们这么使用可以快速清空数组
为了防止数组混乱,建议数组最好只存一个类型的
数组添加删除
push,给数组末尾加元素,shift给数组左侧添加元素
pop尾部删除,unshift给头部添加元素
我们想从中间插入删除插入就要用到splice
删除splice(起始索引,删除长度)
var a=[1,2,3,4,5,6];a.splice(2,3)结果a就剩下[1,2,6]
插入splice(起始索引,删除长度一般写0,元素1,元素2...) 除了起点长度,后面的都被插入
var a=[1,2,3,4,5,6];a.splice(2,0,9,9,9)结果a就剩下[1,2,9,9,9,3,4,5,6]
当然我们也可以又删除又插入,实现替换
数组排序,转换
concat数组拼接
可以用如上代码体验,其中哪个在前面就是谁的concat,结果为1,2,3,4,5,6这个过程中a没有改变
join(字符串)用字符串拼接数组的内容,形成一长串字符串
排序sort
可以看到对于字符串是按首字母优先排序,和python一样,相同则比较下一位,长的比端的靠后,
如果我们的数组元素是数字呢
可以看到结果并不是我们想的,所以数组的sort()方法只能按字符串排序,
我们想让他能按数字排序,怎么办呢,我们可以给sort传入一个函数,函数有2个参数,当前者大返回1,后者大返回-1,相等返回0
我们这么运行后,实现了数字的排序,其实sort()函数并不关系是﹢1还是+2还是什么只要是正数,同理-1也只要是负数即可
我们就sort(function(n1,n2){return n1-n2;});即可对数字排序(当然我们可以逆序,返回值变成n2-n1)