一、函数
函数就是将具有一定功能的一段JS代码的封装,可以在程序的多个地方反复调用。
1)定义函数
格式一:function(){
函数体;
return [表达式];
}
格式二:
var 变量名=function(形参列表){
函数体;
return [表达式];
}
格式三:
(function([形参列表]){
函数体;
[return<表达式>;]
})([实参列表])
注:这种函数叫立即执行函数(IIFE),它自动调动自身,不被其他地方调用,一般用于JS库或JS插件的封装或闭包处理 。
2)函数调用
函数名([实参列表]);
Tips:
函数不会自动执行(IIFE立即执行函数除外),必须通过调用才能执行。
3)
return
函数可以通过return返回结果,如果return没有返回结果,表示结束函数调用。
二、arguments对象
返回实参的一个维数组,一般用在不确定传过来的实参的个数情况下。
三、对象(object)和数组
1)对象是一种类型,即引用类型。而对象的值就是引用类型实例。在ECMAScript中引用类型是一种数据结构,用于将数据和功能组装在一起。
对象由属性和方法组成,通常用键值对定义。
a.对象定义
i)new构建
new Object();
ii)字面量定义
var obj={
key:value,//属性
fn:function(){
//方法
}
}
创建方法1:var obj1=new Object();
obj1.name='张三';
obj1.age=16;
obj1.fn=function(){
console.log(1111);
}
console.log(obj1);
console.log(obj1.name);//调用
创建方法2:var obj2=new Object({name:'李四',age:22,sex:man});
console.log(obj2);
创建方法3(常用):var obj3={
name:'关羽',
sex:'man'
fn:function(){
console.log(111);
}//这个是方法
};
b.对象的引用
i)对象名.属性名
对象名.方法名
ii)对象名[属性名]
对象名[方法名]//一般不建议这样写
当属性名为一个变量时,只能用[]去取值,且不能加引号
三、数组
数组将一组数据组合在一起,并存放到一个变量中,数组是有序排列的,占用一段连续 的内存空间。一个数组可以存储不同类型的数据。
1)定义数组
a .
new Array([实参])
b.字面量创建
var arr=[值列表]
注:arr1.push(1);//push是一种向数组添加元素的方法
2)访问数组(获取数组元素的个数)
数组名[下标]//下标可以是一个数值型常量,也可以是一个表达式或函数或变量,下标是从0开始的
3)遍历数组
二维数组的定义和遍历
4)数组的属性和方法
a.length属性:获取数组长度
b.方法:
i)push():向数组中追加数据(往原数组向后添加)
ii)pop()
删除数组最后一个元素
iii)shift()删除数组中第一个元素
iv)unshift():向数组头部添加数据
v)concat():将两个或多个数组合成一个
vi)reverse():将数组进行倒序处理。
vii)join():将数组转换为字符串
viii)spiice():
删除修改或向数组中添加数据
四、function类型
Function是一个用来构造函数的类(构造函数)
三中函数创建方式
1.
function fn(n){
console.log(n);
}
fn(10);
2.
使用变量初始化
var fn2=function(n){
console.log(n);
}
fn2(100);
3.new的创建
var fn3=new Function();//通过function构建了一个函数对象fn3
fn3=function(n1,n2){
console.log(n1+n2);
}
fn3(10,20);
函数传参:
a.不传参
function Show(){}
b.传参(参数可以是变量,对象,数组,表达式,函数等)
return返回值:
任何函数中遇到return就会结束函数,函数里return后的代码也不会执行。
一般书书写语句为
return 表达式;
五、函数内部属性:
函数内部的两个特殊对象:arguments和this
arguments是一个类数组对象包含传入函数的所有参数,主要用途是保存函数参数,但这个对象还有一个名叫callee的属性,改属性是一个指针,指向拥有arguments对象的函数。也就是说可以通过arguments.callee调用函数自身,一般用于函数的递归调用。
this指针对象
在全局中this指向的是window(在JS中没有global这个全局对象,而JS的全局对象是window在函数中this指向的是这个函数执行所操作的当前对象)