L5-深入JavaScript

今天是周末,很晚才起,想起这两天都没写博客了,还是打开了电脑,先记录下来再出去看赛车。

函数返回值

  什么是函数返回值?

    简单的说,函数就是一个算法,有没有返回值是跟这个函数做什么的有关系。return a +b//这就是返回a+b 的和,用这个函数时,你只需a,b两个数就可以了。也可以说是

  函数执行的结果。函数也可以没有return

 

函数传参

  可变参(不定参)arguments

    参数个数可变,参数数组

  例子1:求和

    求所有参数的和

function sum(){

  return arguments[0]+arguments[1];

}

function sum(num1,num2){    //给参数取别名,增强可读性

  return num1 + num2;

}

alert(sum(2,3));

  例子2:CSS函数

    判断arguments.length

      分析程序实现原理:如果只有两个参数,那么就是获取元素样式的值;否则是设置元素样式的值。

function getStyle(){

  if(arguments.length == 2){

    return arguments[0].style.arguments[1];

  }

  else{

    return arguments[0].style.arguements[1] = arguments[2];

  }

}

function getStyle(obj, attr, value){

  if(arguments.length ==2){

    return obj.style[attr];

  }

  else{

    return obj.style[attr] = value;

  }

}

//call

alert(getStyle(oDiv, 'width')); // 获取oDiv的 width 值  

getStyle(oDiv, 'width' ,'300px') //设置oDiv的 width 值

此方法只能获取行间样式,对非行间样式并不起作用。那如果获取非行间样式呢?接下来就介绍一种方法

  获取非行间样式

    obj.currentStyle[attr]  // IE

    getComputedStyle(obj, false)[attr] //适用除IE的所有浏览器

解决兼容问题(if判断)

if(obj.currentStyle){

  return obj.currentStyle[att];

}

else{

  return getComputedStyle(obj, false)[attr];

}

此方法不能获取到background的样式值?原因是background/border等这些属性是复合样式。如果要想获取,不能这样写background,应该写成background-color

 

数组基础

  数组:相同类型数据的集合。

  数组的使用

    定义:

      var arr1 = [1, 2, 3, 4, 5];

      var arr2 = new Array(8, 9, 10);

数组一和数组二这两中定义方式是没有任何差别的,只是[]的性能略高,因为代码短。

  数组的属性

    length

      既可以获取长度,也可以设置长度

      例子:快速清空数组

  数组的操作

    push:(添加,末尾添加)

    pop :   (删除,末尾删除)    

    unshift:(添加,头部添加)

    shift:   (删除,头部删除)

这些操作都是对数组的头部和末尾进行操作的——那如何对数组的中间进行操作?接下来就要介绍一种操作数组的万能方法:

  splice

    splice(起点,长度) 删除元素   

    splice(起点,长度,元素)if(长度)?替换元素:插入元素;(?:三元运算符)

var arr1 = [1, 2, 3, 4, 5];

arr1.splice(2,3);  // arr = [1,2]删除三个元素

arr1.splice(2,0,'a','b');    //arr1 = [1, 2, 'a','b',3, 4, 5]; 删除0个元素,添加两个元素 插入元素

arr1.splice(2,2,'a','b');    //arr1 = [1, 2, 'a','b', 5]; 删除2个元素,添加两个元素  替换元素

  数组连接

    concat : 连接两个数组

arr1.concat(arr2);    // [1, 2, 3, 4, 5 ,8 , 9 ,10]

    join(连接符):应用:ajax连接网址

  数组排序

    sort(比较函数) 排序一个数组

      排序一个字符串数组

      排序一个数字数组

 

posted @ 2016-03-20 11:36  linyongli  阅读(282)  评论(0编辑  收藏  举报