JavaScript02_函数&内置对象

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(“”)

5. toUpperCase() toLowerCase()

;