数组基础

  数组的使用

  定义

  var arr=[12,9,8];

  var arr=new Array(12,9,8);

  没有任何区别,[]的性能略高,因为代码短

  数组的属性

  length

  既可以获取,又可以设置

  例子:快速清除数组

  数组的使用原则:数组中应该只存一种类型的变量

  实例:同一个函数既可以获取行间样式,又可以设置行间样式

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<style>
</style>
<script>
function css()
{
	if(arguments.length==2)
	{
		return arguments[0].style[arguments[1]];
		}
	else
	{
		arguments[0].style[arguments[1]]=arguments[2];
	    
		};
}
window.οnlοad=function()
{
	var oDiv=document.getElementById('div1');
	/*alert(css(oDiv,'width'));*/
	
	css (oDiv,'background','green');
	};

</script>
</head>
<body>
<div id="div1" style="width:200px;height:200px;background:red;">
</div>

</body>
</html>

 

function css()
 {  if(arguments.length==2)

  {

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

  }

  else

  {

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

  };

}

  参量的等价变换:

  function css(obj,name,value)

  {

  if(arguments.length==2)

  {

  return obj.style[name];

  }

  else

  {

  obj.style[name]=value;

  };

  }

  提取非行间样式

  获取非行间样式(不能用来设置)

  obj.currentStyle[attr]

  getComputedStyle(obj,false)[attr]

  currentStyle只能取单一样式,譬如background-color,但是不能提取复合样式,譬如:background。

  JS第二定律:但凡好东西,一定不兼容。

  实例一:currentStyle获取非行间样式

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<style>
#div1{
	width:200px;height:200px;background:red;
	}
</style>
<script>
window.οnlοad=function()
{
    var oDiv=document.getElementById('div1');
    alert(oDiv.currentStyle.width);
}

</script>
</head>
<body>
<div id="div1">
</div>
</body>
</html>

  currentStyle只兼容IE浏览器

  getComputedStyle 兼容火狐、chrome浏览器,不兼容IE浏览器

 

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<style>
#div1{
	width:200px;height:200px;background:red;
	}
</style>
<script>
window.οnlοad=function()
{
    var oDiv=document.getElementById('div1');
<!--    alert(oDiv.currentStyle.width);//IE-->
<!--   alert(getComputedStyle(oDiv,false).width);//chrome、firefox-->
   if(oDiv.currentStyle)
   //IE
   {
	   alert(oDiv.currentStyle.width);
   }
   else
   //Firefox、chrome
   {
	   alert(getComputedStyle(oDiv,false).width);
    }
	
}
</script>
</head>
<body>
<div id="div1">
</div>
</body>
</html>

  封装一个调用当前样式的函数:

  function getStyle(obj,name)

  {

  if(obj.currentStyle)

  {

  return obj.currentStyle[name];

  }

  else

  {

  return getComputedStyle(obj,false)[name];

  }

  }

  window.οnlοad=function()

  {

  var oDiv=document.getElementById('div1');

  alert(getStyle(oDiv,'width'));

  }

  数组

  数组的定义方法:

  var a=new Array(1,2,3);

  var a=[1,2,3];

  数组的length的bug

  var arr=[1,2,3,4,5,6];

  alert(arr.length)//6

  length即可以获取,又可以设置;

  例子,快速清空数组

  添加删除元素

  push(元素) 尾部添加

  pop() 尾部删除

  shift() 头部删除

  unshift(元素)头部添加

  插入、删除

  splice

  splice(起点,长度,元素……)

  push(元素)

  var arr=[1,2,3,4,5,6];

  arr.push(4);

  alert(arr);//1,2,3,4

  pop()

  var arr=[1,2,3,4,5,6];

  arr.pop();

  alert(arr);//1,2

  splice()

  var arr=[1,2,3,4,5,6];

  //删除:splice(起点,长度)

  arr.splice(2,3);

  alert(arr);//1,5,6

  var arr=[1,2,3,4,5,6];

  //插入:splice(起点,长度,元素……)

  arr.splice(2,0,'a','b','c','d');

  alert(arr);//1,2,a,b,c,d,3,4,5,6

  排序与转换

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

  排序一个字符串数组

  排序一个数字数组

  转换类

  concat(数组2)

  链接两个数组

  join(分隔符)

  用分隔符,组合数组元素,生成字符串

  字符串split

  concat()

  var a=[1,2,3];

  var b=[4,5,6];

  //alert(a.concat(b));//1,2,3,4,5,6

  alert(b.concat(a));//4,5,6,1,2,3

  join()

  var a=[1,2,3,4,5,6];

  alert(a.join('-')); //1-2-3-4-5-6

  sort()为字符串排序

  var arr=['float','width','height','background','alpha'];

  arr.sort();

  alert(arr);//alpha,background,float,height,width

  sort()排列数字大小

  var arr=[128,99,2,19,27,36];

  arr.sort(function (n1,n2)

  {

  return n1-n2;

  /* if(n1<n2)

  {

  return -1;

  }

  else if(n1>n2)

  {

  return 1;

  }

  else

  {

  return 0;

  }*/

  });

  alert(arr);

  split()

 

 var str="How are you doing today?"

  //切割:split(切割点(必填), 切割数组的最大长度(可选))

  document.write(str.split(" ")) //这里引号里的是空格,返回内容为How,are,you,doing,today?

  sort()函数比较数字排序的函数是如何比较的,还是不太理解?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值