1、什么是函数、函数的概念
函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。
2、如何创建函数?
(1)函数声明
语法: function functionName(参数1,参数2){
函数体
}
(2)函数表达式
语法: var functionName=function(参数1,参数2){
函数体
}
这种形式看起来像是常规的变量赋值语句,即创建一个函数并将他赋值给变量functionName。这种情况下创建的函数叫匿名函数,因为function关键字后面没有标识符。
3、如何调用函数
函数定义好后,是不能自动执行的,需要调用它,直接在需要的位置写函数名。
A.在script标签中函数名()
B.在Html标签中通过事件调用 onclick=函数名()
4、函数的参数
形参 在定义函数的时候,函数括号中定义的变量叫做形参。用来接受实参的。
实参 调用函数的时候,在括号中传入的变量或值叫做实参。用于传递给形参。
形参就是函数定义时候用的,实参是在函数调用时候用的。
参数的类型
– 可以是任何的数据类型。
参数的个数
– 实参和形参数量相等,一一对应。
– 实参小于形参,不会报错,多出形参的值会自动赋值为
undefined
– 实参大于形参,不会报错,但如果要获得多出实参的值,需要用arguments对象来获取
每创建一个函数,该函数就会隐式创建一个arguments对象,他包含有实际传入参数的信息。
arguments对象的属性
– length 获得实参的个数
– callee 获得函数本身的引用
5、return语句
通过return 语句给函数一个返回值,停止并且跳出当前的函数
return语句的用法
– 在return 语句后面的函数体内所有内容都不会输出。
– 在函数体内可以有多个return语句,但是只会执行一个。(判断语句)
return语句的返回值
– 返回值可以是任何的数据类型
– 只能返回一个返回值。
– 如果函数没有返回值,那么这个函数的值就会自动的赋值为undefined
6、作用域
作用域:指的就是一段代码的作用范围。
全局变量 在页面中任何地方都能够访问得到的变量,拥有全局的作用域。
A.函数的最外层定义的变量。 B.没有定义直接赋值的变量,拥有全局属性
局部变量 只能在固定的代码片段(函数片段中)中访问到。
A.函数内部定义的变量,就是局部变量。 B.参数也是局部变量。
7、 JavaScript预解析顺序
一、<script></script>块依次解析。
二、解析代码运行的环境。
三、对标识符(关键字)(var function )进行解析,解析到相应的环境下。
四、如果还有<script></script>块再按照上面的步骤依次解析。
创建\调用函数注意问题
如果两个函数的命名相同,后面的将会覆盖前面的函数。
以基本语法声明的函数,会在页面载入的时候提前解析到内存中,以便调用。所以可以在函数的前面调用。但是以字面量形式命名的函数,会在执行到他的时候,才进行赋值。所以只能在函数的后面调用
在不同的<script></script>块中,因为浏览器解析的时候是分块解析的,所以前面的块不能调用后面块的函数,所以在不同的块之间调用函数的时候,应该先定义后调用。
JavaScript 回调函数
通过函数的指针来调用函数。
– 把一个函数的指针做为另一个函数的参数,当调用这个参数的时候,这个函数就叫做回调函数。
JavaScript 递归函数
在函数内部直接或间接的调用自己。
JavaScript 嵌套函数
在函数内部再嵌套函数(闭包)
26.函数
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...