JavaScript数组和函数的使用
数组
数组:一个有顺序,有长度的数据集合
作用:存储大量数据
一、数组的定义
1、构造函数法:使用构造函数法的时候,都会使用new关键字
var arr=new Array();
当长度为0 的时候,里面没有任何数据
2、字面量法:直接声明一个变量,赋值 [ ]
var arr= [ ] ;
二、数组赋值
1、构造函数:
var arr=new Array( ' abc' , 123 , true , false , undefined , null , 789);
这样的写法就是在往数组里面存储数据
如果直接是var arr=new Array(3);那就是声明数组的长度,不是存储数据
2、字面量法:
var arr= [ ‘ abc’ , 123 , true , false , undefined , null , 789 ];
3、通过索引赋值:
注意:数组的索引从0开始。
数组的索引要用 [ ] 访问。
数组里面可以存储任意类型的数据(弱类型)。
arr [0]=123;
arr[1]=’abc’;
4、数组的取值:
数组只能通过索引的方式取值,会使用到 [ ] 操作符
语法: 数组名 [ 索引 ];
var arr= [ ‘ abc’ , 123 , true , false , undefined , null , 789 ];
console.log(arr[0]);
console.log(arr[1]);
5、数组的遍历:将某个数据结构的所有数据全都访问一遍
函数
1、函数的作用
函数:就是一段可以在我们需要的时候重复使用代码块
解决的问题:让代码可以重复使用
2、函数的定义
1、function 关键字声明
格式:
function 函数名 ( 参数列表 ) {
函数体(返回值)
}
书写函数的过程:
1、 把想要重用的过程里,改变的东西放到参数列表里
2、 把想要重用的代码,放到函数体里面
3、 如果你希望函数执行之后,要得到一些东西,这些东西就是返回值,在return的后面加上你想要的东西
2、函数表达式
格式:
var 函数名 = function ( 参数列表 ){
函数体(返回值)
}
过程同上。
3、 函数命名
1、 可以使用字母、数字、下划线、$
2、 不能以数字开头
3、 不能使用关键字和保留字
4、区分大小写
5、建议要有意义 -- 动词+名字结构
6、驼峰命名法
7、函数名不能重名,后面写的重名函数会把前面写的函数给覆盖掉
3、函数的参数
1、函数的形参
形式参数:在函数定义时,写在参数列表里的参数 -- 只是起到占据位置的作用,以便将来我们可以按照一定的规则传递参数。除此之外,还可以在函数的内部当成变量使用
2、函数的实参
实际参数:在函数被调用的时候实际传入函数内部的参数
在现阶段:
传参的时候,形参和实参是不会相互影响的,传参不会影响实际参数的值。或者说:函数在进行简单类型的数据传参的时候,形参和实参的值不会相互影响,简单类型的传参也不会影响实际参数的值
3、arguments对象
1、里面包含了所有在函数调用时传递进来的参数(在js中,函数的实参和形参的个数是可以不一致)
2、可以把arguments这玩意当成数组使用,有长度,可以使用索引访问所有在调用函数的时候传递进来的参数
3、只存在于函数的内部,也只能在函数内部使用,在函数之外是无法直接拿过来使用
一般来说,用来实现不定长度的参数个数的效果
4、函数的返回值
返回值:
当函数执行完毕之后,所得到的结果就是一个函数返回值
任意函数都有返回值
1、 在函数内部没有显式的写有return的时候,函数的返回值是undefined
2、 当函数内部有return,但是return后面没有跟着任何内容或者数据的时候,函数的返回值是undefined,并且return后面的代码不会执行
3、 当return后面跟着内容或者数据的时候,函数的返回值就return后面的东西
return关键字:这个关键字专门用来使函数执行之后具有返回值,并且结束函数执行用的
函数的四种形式:
1、无参无返回值
2、无参有返回值
3、有参无返回值
4、有参有返回值
5、函数的调用
函数名( 参数列表 );
6、匿名函数
就是没有名字的函数
格式:
function (参数列表) {
函数体
}
但是这个格式是不允许直接使用
用处:
1、函数表达式
2、还可以当成参数传递(回调函数)
7、自执行函数
函数可以自动的执行
格式:
(function (){
函数体
})();
JQuery就是使用自执行函数完成初始化的,所以一般在需要声明完毕就立刻执行的时候使用。
8、函数也是一种类型
通过typeof可以知道,函数也是一种数据类型,只要是数据类型,就可以成为参数传递
9、递归
概念:
函数自己内部调用自己本身
function fn(n) {
if (n == 1 || n == 2) {
return 1;
}
return fn(n - 1) + fn(n - 2);
}
console.log(fn(12));