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)); // 55
2. 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();