JavaScript函数、Math对象、数组

函数

函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。

函数的格式
function functionname(参数列表){
    执行代码块;
    return 返回值;
}

function:关键词,全小写

functionname:函数名,用来标识函数的名字,区分大小写,习惯使用驼峰式命名(moveSlide),css为下划线

参数列表:由外部向函数传入的内容

return:从函数内部向外传递内容(函数会停止执行)

    //无参无返回函数
    function name1(){
        代码块;
    }
    //有参无返回函数
    function name2(a){
        代码块;
    }
    //无参有返回函数
    function name3(){
        代码块;
        return 123;
    }
    //有参有返回函数
    function name4(a){
        代码块;
        return 123;
    }
函数调用

在调用函数时,可以向其传递值,这些值称为参数。这些参数可以在函数中使用。可以使用任意多的参数,由”,”分隔。

如果没有返回值/参数,则不写;变量和参数必须以一致的顺序出现。

return给函数返回值,调用函数后可以获取到return的部分。使用return会跳出函数,阻止函数后面语句执行。

    function sum(num1,num2){
        return num1 + num2;
    }
    //函数调用
    var r=sum(3,5)
局部变量和全局变量

在函数内部声明的变量是局部变量,只能在函数内部访问它。(作用域是局部的)局部变量在函数运行以后就会被释放,不再存在。

在函数外部声明的变量是全局变量,网页上的所有脚本和函数都能访问它。全局变量在页面关闭后被删除。全局变量声明方式,不使用var关键字或在函数外部声明

  1. 变量查找首先在函数内部调用之前去查找,如果找到就调用查找到的离得最近的那个变量

  2. 变量查找在函数内部前面没有找到,在调用后面找到一个局部变量,则调用时此变量的值为undefined

    function abc(){
        abc="abc";
        abc="abcd";
        alert(abc);//此时弹出abcd

        alert(abcd);//此时弹出undefined
        abcd="abcd"
    }
匿名变量

匿名变量也叫尚未声明的变量,该变量将被自动作为全局变量声明。

匿名函数

匿名函数指函数没有名字,直接运行。

    function(x,y){
        return x+y;
    }

Math对象

Math对象用于执行数学任务。

    Math.min(1,2,3);//1 获取若干个数中的最小值

    Math.max(1,2,3);//3 获取若干个数中的最大值

    Math.ceil(1.2);//2 对数进行上舍入

    Math.floor(1.8);//1 对数进行下舍入

    Math.round(1.5);//2 把数四舍五入为最接近的整数

    Math.random();// 0~1之间的随机数(不包含0和1)

    //给一个min、max,就能产生一个在最大值最小值之间的随机数,并且包括min、max

    console.log(Math.floor(Math.random()*(max-min+1)+min));

    console.log(Math.round(Math.random()*(max-min)+min));

    console.log(parseInt(Math.random()*(max-min+1)+min));

数组

1.数组概念

数组是一种保存数据的有序列表。数组可以用一个变量名存储所有的值,并且可以用变量名访问任何一个值。数组中的每个元素都有自己的ID,以便它可以很容易地被找到。数组的大小可以动态调整,可以随着数据的添加自动增长以容纳新增数据。

2.数组定义

(1). 常规方式

    var arr1=new Array();
    arr1[0]=1;
    arr1[1]=2;
    arr1[2]=3;

(2). 简洁方式

    var arr2=new Array(1,2,3);
    var arr3=new Array();//空数组

(3). 字面

    var arr4=[1,2,3];
    var arr5=[];//空数组
3.数组取值/赋值

数组是有序数据列表,取值和赋值都是通过下标得到。

下标:用来表示每个数据的位置信息,从0开始计数。

    var arr=[1,2,3];
    var a=arr[0];//取值
    arr[1]=10;//赋值
    arr[3]=20;//错误写法,数组越界

Array数组对象

数组元素的插入删除

push(元素):向数组的末尾添加一个或多个元素,并返回新的长度

unshift(元素):向数组的开头添加一个或更多元素,并返回新的长度

pop():删除数组的最后一个元素,把数组长度减1,并返回删除元素的值;如果这个数组已经为空,则不改变数组,并返回undefined值

shift():删除数组的第一个元素,并返回删除元素的值;如果数组为空,则比进行任何操作,返回undefined值

splice():该方法向/从数组中添加/删除项目,然后返回被删除的项目

splice(起始位置,长度,添加内容(可选)):该方法从起始位置开始,删除长度个元素

splice(起始位置,0,插入元素1,插入元素2,插入元素3…):从起始位置删除0个元素,然后把要插入的元素从起始位置插入进数组

数组元素的替换

splice(要替换元素的起始位置,替换长度,新替换元素1,新替换元素2…)

数组的拼接

contact():用于连接两个或多个数组;不会改变现有数组,仅仅会返回被连接数组的一个副本

数组元素之间添加分隔符

join():该方法把数组中的所有元素放入一个字符串,元素通过括号中的参数作为分隔符进行分隔的

数组元素的排序

sort():用于对数组的元素进行排序(按照ASCII表的顺序排序,而非数值大小)

    //按数值大小排序
    function sortNumber(a,b){
        return a-b;//a,b表示数组中的任意两个元素,若return>0 b前a后;若return<0 a前b后
        //a-b输出从小到大排序,b-a输出从大到小排序
    }
    console.log(arr.sort(sortNumber));

二维数组

二维数组指的是数组中的每个元素都是一个数组。多用来进行矩阵相关操作。

    var arr=[[1,2,3],[4,5,6],[7,8,9]];//二维数组

    arr[i][j];//二维数组获取方式