数组
- 数组是指一组数据的集合,其中的每个数据被称作元素,在数组中可以存放任意类型的元素。数组是一种将一组数据存储在单个变量名下的优雅方式。
- []是数组的字面量,只要在js中看到[]就知道是数组。
- 数组里面的数据用逗号分隔
- 数组里面的数据,称为数组元素。
- 利用数组字面量,创建空数组,最常用
var arr = []; //利用数组字面量,创建空数组
var arr1 = [1,2,'p',true];
-
获取数组元素
数组的索引:用来访问数组元素的序号(下标从0开始)
数组可以通过索引来访问,设置子,修改对应的数组元素,我们可以通过‘数组名[索引]'的形式来获取数组中的元素。
这里的访问就是获取得到的意思
如果没有这个数组元素,所以输出的结果是undefined -
遍历
把数组中的每个元素从头到尾访问一遍 -
数组的长度
数组名.length -
新增数组元素
- 修改length的长度
- 通过修改数组索引新增数组元素
可以通过修改数组索引的方式追加数组元素
- 修改length的长度
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var arr1 = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] >= 10) {
arr1[arr1.length] = arr[i];
}
}
console.log(arr1);
- 冒泡排序
是一种算法,把一系列的数据按照一定的顺序进行排列显示(从小到大或者从大到小)
var arr = [3, 2, 5, 1, 4];
for (var i = 0; i <= arr.length - 1; i++) {
for (var j = 0; j <= arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
console.log(arr);
函数
-
在JS里面,可能会定义非常多的相同代码或者功能相似的代码,这些代码可能需要大量重复使用。虽然for循环语句也能实现一些简单的重复操作,但是比较具有局限性,此时我们就可以使用JS中的函数。
-
函数:就是封装了一段可被重复调用执行的代码块。通过此代码块可以实现大量代码的重复使用。
-
函数使用分为两步:声明函数 和 调用函数
声明函数
function 函数名() {
函数体
}- function声明函数的关键字 全部小写
- 函数是做某件事,函数名一般是动词 seyHi
- 函数不调用自己不执行
调用函数
函数名();
sayHi();
调用的时候千万不要忘记添加小括号
声明函数本身并不会执行代码,只有调用函数时才会执行函数体代码。
-
函数封装
函数的封装是把一个或者多个功能通过函数的方式封装起来,对外只提供一个简单的函数接口。
简单理解:封装类似于将电脑配件整合组装到机箱中(类似快递打包) -
函数参数:
形参与实参
形参是用来接收实参的,形参类似于一个变量在声明函数的小括号里面是形式上的参数,在调用函数的小括号里面是实际 上的参数
function 函数名(形参1,形参2…) {
函数体
}
函数名(实参1,实参2…); -
函数形参实参个数不匹配问题
如果实参多余形参个数,则多余的不参与运算。
如果实参的个数小于形参的个数
-
函数的返回值 return 语句
函数将值返回给调用者,此时通过使用return语句就可以实现
return 只能返回一个值
函数没有return ,则返回undefined。
-
arguments的使用
arguments是伪数组,并不是真正的意义上的数组- 具有数组的length的属性
- 按照索引的方式进行存储的
- 它没有真正数组的一些方法 pop() push()
- 我们可以按照数组的方式遍历arguments
function getMax() {
var max = arguments[0];
for (var i = 1; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
console.log(getMax(1, 2, 3));
- 函数判断年份是否是闰年
function year(n) {
var flag = false;
if (n % 4 == 0 && n % 100 != 0 || n % 400 == 0) {
flag = true;
}
return flag;
}
var num = prompt('年份');
alert(year(num));
- 函数可以调用另外一个函数
function fn1() {
console.log(111);
fn2();
console.log('fn1');
}
function fn2() {
console.log(222);
console.log('fn2');
}
fn1();
函数调用函数,判断平闰年
function backDay() {
var year = prompt('请您输入年份:');
if (isYear(year)) {
alert('当年2月份有29天');
} else {
alert('当年2月份有28天');
}
}
backDay();
function isYear(n) {
var flag = false;
if (n % 4 == 0 && n % 100 != 0 || n % 400 == 0) {
flag = true;
}
return flag;
}
-
两种函数的声明方式
- 利用函数关键字自定义函数(命名函数)
function fn() {
}
fn(); - 函数表达式(匿名函数,没有函数名)
var 变量名 = function() {};
(1) fun是变量名 不是函数名
(2)函数表达式声明方式跟声明变量差不多,只不过变量里面存的是值,而 函数表达式里面存的是函数(变量名里面的不是值是函数)
(3)函数表达式也可以进行传递参数
- 利用函数关键字自定义函数(命名函数)