总感觉js定义数组有些诡异,简直是是非常随意麻!还有函数的默认参数,也跟c有很大的不同!!
一、数组
声明(注:js是不用声明变量的,但是为了方便调试,最好声明下):
var arr = new Array(); //默认长度是0
var arr =new Array(3); //指定长度,但仍可变
var arr = new Array(3, 5, "hello", new Array(1, "world"));
var arr = [3, 5, "hello", new Array(1, "world")];
var arr = new Array(
new Array(),
new Array()
);
var arr = new Array(
new Array(11, 22),
new Array(33, 44)
);
var arr = new Array(
["a", "b"],
["c", "d"]
);
var arr = [ ["a", "b"], ["c", "d"] ];
var arr = [ ["a", "b"], arr1, arr2 ];
大概就这两种方式,以对象的方式声明和隐式的声明,以及两者的混合,再者是否有初始值等。
访问与赋值(其引号不区分单双):
arr[0] ='test';
添加(返回新长度):
arr.push(3, 4, 5); //从结尾添加
arr.push(3, 4, 5); //从开头添加
另:splice() ,指定位置
删除(返回操作元素值):
arr.pop(); //最后一个
arr.shift(); //最前一个
另:splice(pos, count) 指定元素
截取合并:
arr.slice(start, end)
arr.concat(item1, item2, ...)
拷贝:
arr.slice(0)
arr.concat()
排序:
arr.reverse()
arr.sort()
字符串化:
arr.join(separator)
属性:
arr.length //注意长度可变,如果设置后的比原来小,其他元素会丢失
遍历
for(i in arr)
console.log(arr[i])
二、函数
函数 默认参数 与其他不一样!!!
function test(a){ var b =arguments[1]?arguments[1]:50; return a +':' +b; }