JSON
javascript object notation
json和数组
-
json的下表是字符串,arr的下表是数字
-
arr可以利用length进行循环 json没有length json利用for in(arr也可以)
for(var i in json){ alert('第'+i+'个是'+json[i]); }
函数
参数可以任意个,返回值只能有一个
利用json可以返回多个值
return是空的=undefined
一个函数应该只返回一种类型的值
1. 函数传参
arguments 是一种数组 可变参 不定参
用于不确定参数个数的时候
function sum(){
// arguments
var result=0;
for(var i=0;i<arguments.length;i++){
result+=arguments[i];
}
return result;
}
alert(sum(1,2,3,4))
2. CSS函数
是jquery的一个函数
css(oDiv,'width');//两个参数 获取样式
css(oDiv,'width','200px');//三个参数 设置样式
通过判断传入参数的个数 决定函数功能
function css(){
if(arguments.length==2)//获取
{
return arguments[0].style[arguments[1]];
}
else//设置
{
arguments[0].style[arguments[1]]=arguments[2]
}
}
window.onload = function(){
var oDiv=document.getElementById('div1');
alert(css(oDiv,'width'));//获取
css(oDiv,'background','black');//设置
};
3. 取非行间样式
行间样式的获取:oDiv.style.width 写在样式表或者外部样式表的获取: oDiv.currentStyle.width或者用于chrome的getComputedStyle(oDiv,随便放什么).width 两种都只兼容部分浏览器
用if语句实现各种浏览器都兼容:
if(oDiv.currentStyle)//IE
{
alert(oDiv.currentStyle.width);
}
else//chrome/fox
{
alert(getComputedStyle(oDiv,false)[width]);
}
}
将上述思路封装成函数使用:
function getStyle(obj,name){
if(obj.currentStyle){
return obj.currentStyle[name];
}
else{
return getComputedStyle(obj,1)[name];
}
}
需要注意的是: CSS有两种样式
复合样式:background
单一样式:width,height
这样的方法只能取出来单一样式
数组
1. 声明数组的方法:
var arr = [1,2,3];
var arr = new Array(1,2,3);
方括号性能更高
2. 数组的length可以获取也可以设置
例子:设置arr.length=0可以清空数组
3. 数组使用原则:一个数组中只使用一种数据类型
4. 数组的操作
① 添加删除
-
末尾添加 arr.push()
-
头部添加 arr.unshift()
-
末尾删除 arr.pop()
-
头部删除 arr.shift()
-
指定位置操作 万能操作splice()
删除:splice(起点,长度)
在起点处插入或替换元素:splice(起点,删除长度(若不删除则为0),‘元素)
② 数组的连接
-
concat()方法 直接连接
arr1.concat(arr2) -
join()方法 元素之间连接
var arr1 = [1,2,3,4,5,6]; alert(arr1.join('-')); ->1-2-3-4-5-6
③ 数组的排序
-
用于字符串字母序 如果用于排序数字会当做字符串处理
arr1.sort(); -
用于数字序 传一个比较函数为参数
arr1.sort(function(n1,n2){ if(n1<n2){ return -1; } else(n1>n2){ return 1; } else{ return 0; } }); 不一定是-1、1,只要是负数或者正数就可以,整理简化后得:
arr1.sort(function(n1,n2){ return n1-n2; });