javascript学习笔记 - 深入JavaScript

以下内容为笔记,方便查阅。对您可能没有价值!

函数返回值 return


function sum(a,b){
return a+b;
}

alert(sum(1,2));

// 如果return为空,或没有return == undefined

函数传参

固定参数个数


function sum(a,b,c){
return xxx;
}
sum(1,2,3);

可变参\不定参arguments


function sum(){
//arguments 是一个数组
//return arguments.length; //参数个数
//arguments[0] //第一个参数
var result = 0;
for(var i=0;i<arguments.length;i++){
result += arguments[i]
}
return result;
}
alert(sum(1,2,3));

操作DOM样式

obj.style.xxx //取行间样式
obj.style.xxx = ‘xxx’ //设置行间样式
obj.currentStyle.xxx //取非行间样式(IE)
getComputedStyle(obj,false)[styleName] //取非行间样式(chrome、ff),第二个参数可以是任意值。

能力测试做兼容


//不可以取符合样式,如background,只能取单一样式,如backgroundColor

function css(obj){
if(obj.currentStyle){
obj.currentStyle.xxx;
}else{
getComputedStyle(obj,false)[styleName];
}
}

数组基础


//定义数组
var arr = [1,2,3];
var arr = new Array(1,2,3);

数组属性

length

length 既可以获取数组长度,也可以设置数组长度,如下:


var arr = [1,2,3,4,5,6];
arr.length == 6; //获取数组长度

arr.length = 2; //设置数组长度
//arr = [1,2];
//此特性可以用于清空数组。arr.length = 0;

数组的方法

  • 添加(可添加多个)
    • push(元素,…),从尾部添加
    • unshift(元素,…),从头部添加
  • 删除(仅删除1个)
    • pop(),从尾部弹出
    • shift(),从头部弹出
  • 插入、删除
    • splice(开始,长度,元素…) - 先删除,后插入
    • splice(开始,长度) - 删除
    • splice(开始,0,元素…) - 插入(在开始位置前插入)
    • splice(开始,长度,元素…) - 替换(先删除,再插入)

var arr = [1,2,3];

arr.push(4,5); //arr == [1,2,3,4,5]
arr.pop(); //arr == [1,2]
arr.unshift(0,0); //arr == [0,0,1,2,3]
arr.shift(); //arr == [2,3]
arr.splice(1,1); //arr == [1,3]
arr.splice(1,0,'a','b','c'); //arr = [1,'a','b','c',2,3]
arr.splice(1,1,'a','b'); //arr = [1,a,b,3]
  • 排序
    • sort([比较函数]) - 排序一个数组
      -转换类
    • concat(数组2) -连接2个数组
    • join(分隔符) - 用分隔符组合数组元素,生成字符串
    • split(符号) - 用符号拆分字符串产生数组

var a = [1,2,3],
b = [4,5,6],
c = ['f','w','a','z','l'],
d = [12,8,99,19,112],
str = '1-2-3';

a.concat(b); //连接2个数组 [1,2,3,4,5,6]
a.join('-'); //用-连接数组元素,结果为字符串
str.split('-'); //拆分字符串为数组[1,2,3]


c.sort(); //结果['a','f','l','w','z']
d.sort(); //结果[112,12,19,8,99](?见如下注释)

d.sort(function(n1,n2){
// 此例中,n1-n2依次被传入的值为:12-8,8-99,99-19,19-112

return n1-n2;

//正值:说明n1比n2大,排序后的新数组中n1在n2之后
//0:n1==n2,不做比较
//负值:说明n1比n2小,排序后的新数组中n1在n2之前
});

sort - 只对字符串排序,如果为纯数字数组,sort会按照字符串的规则排序数组。
如果需要排序其他元素数组,可以使用排序函数arr.sort(function)

评论