3.数组、函数
大约 3 分钟学习笔记前端基础JavaScript
一、数组
1. 创建数组
利用 Array() 创建数组
var arr = new Array(); // 一个名为 arr 的空数组利用 字面量([]) 创建数组
var arr = []; // 一个名为 arr 的空数组2. 数组的使用
下标:
数组的 下标 从 0 开始
var arr = [3.14, "JS", "HTML", true];
console.log(arr[1]); // JS遍历元素
变量名.length: 可以获取 数组元素的 个数.
var arr = [3.14, "JS", "HTML", true];
for (var i = 0; i < arr.length; i++) {
	console.log(arr[i]);
}获取数组中的最大值:
var arr = [3.14, 18, -21, 33, 0, 1];
var num = 0;
for (var i = 0; i < arr.length; i++) {
	if (num < arr[i]) {
		num = arr[i];
	}
}
console.log(num); // 33数组转为字符串:
var arr = [3.14, "JS", "HTML", true];
var num = "";
for (var i = 0; i < arr.length; i++) {
	num += arr[i];
}
console.log(num);3. 增加数组元素
修改数组长度
var arr = [3.14, "JS", "HTML", true];
console.log(arr.length); // 4
// 修改 length 长度,增加元素
arr.length = 6;
console.log(arr.length); // 6
console.log(arr[4]); // undefined
console.log(arr[5]); // undefined修改索引增加数组长度
var arr = [3.14, "JS", "HTML", true];
console.log(arr.length); // 4
// 修改索引 增加 数组长度
arr[4] = "老王";
arr[5] = "张三";
console.log(arr.length); // 6
console.log(arr[4]); // 老王
console.log(arr[5]); // 张三冒泡排序
var arr = [0, 12, 6, 66, -2, -30];
for (var i = 1; i < arr.length; i++) {
	for (var j = 0; j < arr.length - i; j++) {
		if (arr[j] > arr[j + 1]) {
			var num = arr[j];
			arr[j] = arr[j + 1];
			arr[j + 1] = num;
		}
	}
}
console.log(arr); // [-30, -2, 0, 6, 12, 66]二、函数 ( function )
1. 函数的基本使用
申明函数:
function 函数名(参数1,参数2,...) {
	函数体;
    return 返回值;
}调用函数:
函数名(参数1,参数2,...);形参: 形式上的参数,申明函数里的参数都是型参
实参: 实际上的参数,函数实际调用的时,函数的参数;
实参与形参个数不匹配问题
- 实参多余形参: - 多处的实参不会被使用
 
- 形参 多余 实参 : - 多余的形参值为 undefined , 最后的结果为 NaN
 
function sum_number(start, end) {
	var num = 0;
	for (var i = start; i <= end; i++) {
		num += i;
	}
	return num;
}
console.log(sum_number(1, 10)); //	552. arguments 的使用
arguments: 在不确定参数个数时,可以使用 arguments 来存储所有的实参,其返回结果是一个 伪数组
伪数组(不是一个真正的数组):
- 具有数组的 length 属性;
- 按照索引的方式进行存储的;
- 它没有真正数组的某些方法;
获取任意个数中的最大值
function sum_number() {
    var num_list = arguments;
    var num_max = num_list[0];
    for (var i = 1; i < num_list.length; i++) {
        if (num_max < num_list[i]) {
            num_max = num_list[i];
        }
    }
    return num_max;
}
var max = sum_number(1, 2, 44, 0, 12, -8)
console.log(max)		// 44
var max = sum_number(32, 33, 1, 6, 88)
console.log(max)		// 88案例
冒泡排序
function paixu(newList) {
	var list = newList;
	for (var i = 0; i < list.length - 1; i++) {
		for (var j = 0; j < list.length - i; j++) {
			if (list[j] > list[j + 1]) {
				var num = list[j];
				list[j] = list[j + 1];
				list[j + 1] = num;
			}
		}
	}
	return list;
}
var max = paixu([1, 2, 44, 0, 12, -8]);
console.log(max); // [-8, 0, 1, 2, 12, 44]
var max = paixu([32, 33, 1, 6, 88]);
console.log(max); // [1, 6, 32, 33, 88]函数调用
function inRunYear(year) {
	if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
		flag = true;
	} else {
		flag = false;
	}
	return flag;
}
function backDay() {
	var year = prompt("请输入年份?");
	if (inRunYear(year)) {
		alert(year + "年2月有29天。");
	} else {
		alert(year + "年2月有28天。");
	}
}
backDay();3. 函数 2 种声明方式
利用函数关键字 自定义申明
function fn() {
	// 函数体
}函数表达式 ( 匿名函数 )
var fn = function () {
	// 函数体
};
// 调用
fu();