一、数组
定义:数组array就是一组数据的集合,可利用new 创建数组,也可以利用字面量创建数组,数组里面的数据一定要用逗号隔开
1、数组的使用
.1 利用new创建数组
var arr=new Array() //创建空数组
.2 利用数组字面量创建数组
var arr=[] //创建空数组
var arr1=[1,2,'哈哈哈',true]
.3获取数组元素,索引下标开访问数组的元素,索引号从0开始
数组名[索引号]
console.log(arr1[2])
2、遍历数组
遍历数组:把数组的元素从头到尾访问一次
数组的长度是元素个数和索引号不一样,arr.length用于动态监测数组元素的个数,可以有效实现遍历数组
var arr1=[1,2,'哈哈哈',true]
for (i = 0; i < 4; i++) {
console.log(arr1[i]);
}
//第二种方法:arr1.length
for (i = 0; i <arr1.length; i++) {
console.log(arr1[i]);
}
//取最大值
var arr = [2, 6, 1, 77, 53, 35, 10];
var max = arr[0];
for (var i = 0; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
console.log('最大值为:' + max)
3、数组常用属性
(1)数组反转-reverse
var arr = [5, 2, 0, 1, 3, 1, 4];
//数组的反转
arr.reverse();
console.log(arr)
(2)数组排序-sort
var arr = [5, 2, 0, 1, 3, 1, 4];
arr.sort(function (a, b) {
// return 10;//不变
// return 0;//不变
// return -10;//反过来
// return a - b;//升序
// return b - a;//降序
})
console.log(arr)
(3)新增数组元素
//1.新增数组元素-修改length长度
var arr = ['hr', 'xh', 'hate']
console.log(arr.length)
arr.length = 5;
console.log(arr)
//2.修改索引号,追加数组元素
arr[4] = 'pink';
console.log(arr)
arr[0] = 'blue';//这里是替换原来的数组元素
console.log(arr);
(4)冒泡排序
1、外层for用于确定趟数
2、里层for用于确定交换次数
3、注意两个数据之间的交换,可采用中间值的方法
var arr = [1, 3, 6, 9, 10, 23]
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)
二、函数
1、函数的概念
函数:封装了一段可以被重复调用执行的代码块,可以通过此代码块实现大量代码的重复使用。
封装:把一个或多个功能通过函数的方式封装起来,类似快递打包
函数的使用:
分为声明函数和调用函数
语法格式:
//声明函数
function 函数名(){
//函数体
}
//调用
函数名()
2、函数使用
function 函数名(形参1, 形参2, ...) {
//声明函数里的小括号是形参
}
//函数调用里的小括号为实参
函数名(实参1, 实参2, ....)
//形参和实参执行过程
function cook(aru) {
console.log(aru);
}
cook('土豆');
1、如果实参个数与形参个数一致,正常输出结果
2、如果实参个数多于形参个数,会取到形参的个数
3、如果实参个数小于形参个数,多于形参的定义为undefined,返回值为NaN
3、函数的返回值
function 函数名(){
return 需要返回的结果
}
函数名();
(1)函数只是实现某种功能,最终的结果需要返回给函数的调用者,通过return实现
(2)只要函数遇到return,就把后面的结果返回给函数的调用者, 函数名=return后面的结果
(3)如果return后面还有其他的代码,都不会在执行了,遇到return了就表示代码结束了
function getMax(num1, num2) {
//三目运算符
return num1 > num2 ? num1 : num2;
console.log(111);
}
console.log(getMax(3, 9));
(4)如果函数没有return则返回的是undefined
function fn() {
return 666;
}
console.log(fn());
function fn1() {
}
console.log(fn1());
4、break、continent和return的区别
break:结束当前的循坏体(eg:for while)
continue:跳出本次循环,继续执行下次循环(for while)
return:不仅可以退出循环,也可以返回return语句中的值,同时可以结束当前的函数体内的代码
5、argument说明
# arguments
所有函数都内置了一个 arguments 对象,存储了传递的所有实参。
arguments是一个伪数组,可以进行遍历。伪数组具有以下特点:
具有 length 属性
按索引方式储存数据
不具有数组的 push , pop 等方法
function fn(){
console.log(arguments)
}
fn(1,2)
fn(1,2,3)
//案列-求任意个数中的最大值
function getMax() {
var max = arguments[0];
for (var i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
console.log(getMax(1, 4));
console.log(getMax(1, 4, 8));
console.log(getMax(1, 4, 8, 66, 100, 99));