JavaScript--总结三(数组和函数)
数组
数组的概念:
将多个元素(通常是同一类型)按照一定顺序排列放到一个集合中,这个集合称之为数组---简(一组有序的数据)
数组的作用:可以一次性存储多个数据
数组的定义:
1.通过构造函数创建数组
语法:
var 数组名=new Array(); var array=new Array();//定义了一个数组
数组的名字如果直接输出,那么直接就可以把数组中的数据显示出来,如果没有数据就看不到数据;
2.通过字面量的方式创建数组
语法:
var 数组名=[];//空数组 var array=[]; var 数组名=[值1,值2,值3];
数组的长度:就是数组中的元素个数--可以通过length来获取数组的长度
// 创建一个空数组 var arr1 = []; // 创建一个包含3个数值的数组,多个数组项以逗号隔开 var arr2 = [1, 3, 4]; // 创建一个包含2个字符串的数组 var arr3 = ['a', 'c']; // 可以通过数组的length属性获取数组的长度 console.log(arr3.length); // 可以设置length属性改变数组中元素的个数 arr3.length = 0;
数组的索引(下标):从0开始,到数组的长度减1结束
可以通过索引来获取/设置/增加数组元素
// 格式:数组名[下标] 下标又称索引 // 功能:获取数组对应下标的那个值,如果下标不存在,则返回undefined。 var arr = ['red',, 'green', 'blue']; arr[0]; // red arr[2]; // blue arr[3]; // 这个数组的最大下标为2,因此返回undefined
// 格式:数组名[下标/索引] = 值;
// 如果下标有对应的值,会把原来的值覆盖,如果下标不存在,会给数组新增一个元素。
var arr = ["red", "green", "blue"];
// 把red替换成了yellow
arr[0] = "yellow";
// 给数组新增加了一个pink的值
arr[3] = "pink";
数组遍历
遍历:遍及所有,对数组的每一个元素都访问一次叫遍历
数组遍历的基本语法:
for(var i=0;i<arr.length;i++){ //数组遍历的固定模式 }
函数
把一段相对独立的具有特定功能的代码块封装起来,形成一个独立实体,就是函数,起个名字(函数名),在后续开发中可以反复调用
函数的作用:代码的重复使用
函数的定义
1.函数声明
function 函数名(){ // 函数体 } 函数声明的时候,函数体并不会执行,只要当函数被调用的时候才会执行
2.函数表达式
var fn = function() { // 函数体 }
函数的调用:
函数名();
函数体只有在调用的时候才会执行,调用需要()进行调用。
可以调用多次(重复使用)
// 声明函数 function sayHi() { console.log("吃了没?"); } // 调用函数 sayHi();
函数参数:
在函数定义的时候,函数名字后面的小括号里的变量就是参数,目的是函数在调用的时候,用户传进来的值操作,此时函数定义的时候后面的小括号里的变量就叫参数;写俩个变量就有俩个参数(写多少代表有多少个);
在函数调用的时候,按照提示的方法,给变量赋值---就叫传值,把这个值传到变量(参数中);
函数内部是一个封闭的环境,可以通过参数的方式,把外部的值传递给函数内部 带参数的函数声明 function 函数名(形参1, 形参2, 形参...){ // 函数体 } 带参数的函数调用 函数名(实参1, 实参2, 实参3);
形参:在声明函数的时候,为了函数的功能更加灵活,有些值固定不了,对于这些固定不了的值,我们可以给函数设置参数,这个参数没有具体的值,仅仅起到一个占位置的作用
实参:如果函数在声明时,设置了形参,那么在函数调用时就需要传入对应的参数(实参可以是变量也可以是值)
函数的返回值
当函数执行完的时候,并不是所有时候都需要把结果打印出来;我们需要函数给我们一些反馈(比如计算的结果返回进行后续的运算),这个时候可以让函数返回一些东西,也就是返回值。函数通过return返回一个返回值。
//声明一个带返回值的函数 function 函数名(形参1, 形参2, 形参...){ //函数体 return 返回值; } //可以通过变量来接收这个返回值 var 变量 = 函数名(实参1, 实参2, 实参3); 函数的调用结果就是返回值,因此我们可以对函数调用结果进行操作。
返回值详细解析:
如果函数没有显示的使用 return语句 ,那么函数有默认的返回值:undefined
如果函数使用 return语句,那么跟再return后面的值,就成了函数的返回值
如果函数使用 return语句,但是return后面没有任何值,那么函数的返回值也是:undefined
函数使用return语句后,这个函数会在执行完 return 语句之后停止并立即退出,也就是说return后面的所有其他代码都不会再执行。
arguments的使用
JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。也就是说所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有的实参。arguments是一个伪数组,因此及可以进行遍历
---定义函数的时候,不知道是否传入了参数的,没有确定形参的个数,在用户调用函数之后传入的实参储存在arguments对象中,函数中通过arguments对象我们可以进行操作
定义:
function f1() { //获取的是函数在调用的时候,传入了几个参数 //console.log(arguments.length); //使用arguments对象可以获取传入的每个参数的值 console.log(arguments); }
实例:
function f1() { //arguments----->数组使用------伪数组--- var sum=0; for(var i=0;i<arguments.length;i++){ sum+=arguments[i]; } return sum; } console.log(f1(10,20,30));
函数其他
匿名函数:没有名字的函数
命名函数:有名字的函数
函数表达式: var 变量=匿名函数 var f1=function (){ };如果是函数表达式,那么此时前面的变量中存储的就是一个函数,而这个变量就相当于是一个函数,就可以直接加小括号调用了
自调用函数(没有名字)
匿名函数不能通过直接调用来执行,因此可以通过匿名函数的自调用方式来执行(声明的同时直接调用);
(function () { alert(123); })();
函数是一种数据类型
function fn() {} console.log(typeof fn);通过typeof 获取函数的类型:function;
函数作为参数使用
函数可以作为参数使用,如果一个函数作为参数,那么我们说这个参数(函数)可以叫回调函数
只要是看到一个函数作为参数使用了,那就是回调函数
函数作为返回值使用
因为函数是一种类型,所以可以把函数可以作为返回值从函数内部返回,这种用法很常见。
function fn(b) { var a = 10; return function () { alert(a+b); } } fn(15)();