1. 函数定义
function add(num1, num2) {
return num1 + num2;
}
var sum = add(1, 6);
alert(sum);
//可以用arguments来管理参数列表,是一个数组
arguments[i];
arguments.length;
arguments只是用来管理参数列表,和数组不是一个概念
2. 内置对象 — Array、 String、 Math、 Date
1. Array
1. 元素的类型可以不同
//两种创建数组的方法:
var colors = new Array();
var numbers = new Array(1, 2, 3, 4);
var infos = ["hahaha", 12, true];
2. array.length
如果设置length属性小于实际数组元素的数量,会产生截断效果
如果原有5个元素,突然设置一个arr[99]=100; 那么length会变为100,而不是6
3. 数组的栈方法 push unshift pop shift
var colors = new Array();
colors.push("blue");
//push方法返回数组的length
var numbers = [2, 7, 8, 6];
var len = numbers.unshift(12, 33); //len = 6
alert(numbers); // numbers = 12, 33, 2, 7 ...
//arr.pop() 返回删除的最后一个元素的值
//arr.shift() 返回删除的第一个元素的值
4. 数组的转换方法 join reverse sort
var nums = [2, 4, 5];
var str = nums.join(); // 返回字符串 2, 4, 5
var words = ["hello", "world"];
var str = words.join(""); // helloworld
var str = words.join("-"); // hello-world
//---------------
arr.reverse() // 反向输出数组
//---------------
arr.sort(sortby); // 先调用toString(),按首字母排序,比如12, 23, 9
arr.sort(function(a, b) {return b-a}); //降序
5. 数组连接和分割 concat slice splice
arr1.concat(arr2); //返回一个String
arr.slice(start, end); //如果start是负数,则从数组尾部开始;end可以省略,end表示截取到第几个,不是截取几个
var colors = ["red", "green", "blue"];
alert(colors.slice(0, 2)); //red,green
slice(-1, 3); // arr.length + (-1), 3
a是一个数组,b是undefined,想把a的元素复制给b
1: 遍历a,b.push(a[i]);
2: b.concat(a);
3: b = a.slice(0); //a从0开始截取至最后
splice删除、插入、替换
arr.splice(2, 3); //从索引为2开始,删除3个元素,返回被删除的元素
arr.splice(2, 0, "abc"); //在索引为2的地方,插入“abc” 返回[]
arr.splice(1, 2, "x", "y", "z"); //从索引为1的位置,删除两个元素,再插入xyz三个元素到原位置
6. indexOf()
arr.indexOf(99); 返回99的索引,找不到就返回-1
arr.indexOf(7, 2); 返回从索引为7开始,2所在的索引
arr.lastIndexOf(1); 从后向前搜索
function arrayIndexOf(array, value) {
for (var i = 0; i < array.length; i++) {
if(value === array[i]) { //===
return i;
}
return -1;
}
}
2. String
1. charAt() charCodeAt() indexOf() lastIndexOf()
str[index]; //IE7之后可以这样访问String的元素
str.charAt(index); //返回str索引为index的字符
str.charCodeAt(index); // 返回该字符的编码
str.indexOf("hello"); //返回该子串的索引
str.lastIndexOf("0"); //从后向前搜索
2. slice() subString() subStr()
怎么感觉和数组的一样呢
str.slice(start, end); //start从0开始数,end从1开始数
subString(); 和slice一样,只是在遇到负数时,转换为0
subStr(6, 3); 从索引为6开始,截取3个元素,这方法才好使
4. split() replace()
split() 返回的是数组
String 和 Array 相互转换:split() <==> join(“”)