函数:
1:基本结构
function 函数名 ( ) {
执行语句
}
函数名()
2:什么是函数?
函数由function关键字声明
函数就是代码块的集合;
3:函数的特点:
函数可以让代码重复使用;
函数是一个方法
4:形参,实参
实参放在函数调用里面,形参放在函数名后面,用字母代替
形参,实参的位置是一一对应,
形参,实参可以有任意多个,
形参即便没有相对应得实参,也不影响代码的执行
实参即便没有相对应得形参,也不影响代码的执行
任何数据类型都可以当做函数的实参,
5:获取实参的个数
arguments是获取实参的属性
arguments.length 获取实参的长度
arguments.length-1获取实参的最后一个数
arguments[下标] 获取每一个实参
6:获取形参的个数
function ton ( a,c,s,d,n,f,s,d,e,r){
alert(ton.length)
}
ton();
7:函数的命名规则
1:必须以字母,下划线,美元符号($)开头;
举例:
var a;
var _a;
var $a;
2:变量名不能用关键字和保留字命名;
举例:
var for
var if
3:变量命名尽量用驼峰命名法命名;
var HaDer
4:变量命名不能含有空格,尽量要有语义化。
var Ha Der
var Ha_Der
8:函数的调用:
1:普通调用
2:输出方法中调用(在表达式中调用)
在输出方法中调用必用return关键字
return关键字后面可以跟任意值(任何东西在return,return都会返回)
被return关键字返回的值给了函数名+括号
3:事件中调用
9:关键字 return
return以下的代码不会被执行
10:display:block、none
显示/隐藏
11:变量
全局变量
可以被任何类型所有获取,所以是全局变量
声明全局变量的方式:
1:在函数外用关键字 var
2:用window对象声明也是全局变量(不分函数外还是函数内)
3:不加关键字 var 声明也是全局变量(不分函数外还是函数内)
局部变量
在函数内用关键字var声明的变量,是局部变量,局部变量只能在局部范围有效
12:变量的作用域
全局变量的作用域:
变量被声明以后,往下有作用,往上获取不到值。
局部变量的作用域:
局部变量被 var声明以后,只作用在函数内部,函数外部获取不到
13:预解析
他是一种浏览器解析js的一种机制!
浏览器解析js代码的时候,先看js里面是否有关键字 var 和 function,
有var 和 function关键字,先解析他们的代码。
关于变量的解析:
alert(a)//undefined
var a=1;
alert(a)//1
预解析,只解析到var a,后面的等号和赋值,不解析
所以,在变量上面输出变量,是一个 undefined,在下面输出,是正常的变量值
关于函数的解析:
function sum(a,b){
alert(c)//undefined
var c=1;
alert(c)//1
}
sum(1,2)
预解析函数,只先解析到花括号以前,不解析花括号里面的内容,等浏览器在整片页面代码里面
没有看见其他的 var 和 function,在回头解析花括号里面的代码
14:函数的嵌套
function a ( ) {
var aa=1;
function b(){
function c(){
alert(aa)
}
}
b();
}
a();
15:匿名函数
var a=function(){
alert(1);
}
a();//在这这个a()就变成了方法