05JavaScript函数
函数声明
1 | // 函数声明方式 |
函数与变量同名时的问题
使用函数声明方式时
变量会覆盖函数,与顺序无关
1
2
3
4
5
6
7
8var fn = "message";
function fn() {
return 100;
}
console.log(fn); //输出message
fn();//报错 TypeError: fn is not a function使用函数表达式方式时
函数会覆盖变量(变量先声明,函数后声明),与顺序有关。
简单来说就是变量的重复声明
1
2
3
4
5
6
7var fn = "message";
var fn = function () {
return 100;
};
console.log(fn); //输出 [Function: fn]
所以我们的得出结论:
- 函数的声明方式和函数的表达式方式,在内存的结构上应该是不同的
- 当使用函数声明方式时,变量名与函数名同名时,变量会覆盖函数
函数参数
传入参数数量的情况
函数形参与实参个数相同
正常运行
传入实参少于形参个数
不报错,但少传入的参数会变成
undefined
传入实参多余形参个数
不报错,多余的参数会舍弃
1 | function test1(a, b) { |
情况 | 参数a | 参数b | 参数c | 结果 |
---|---|---|---|---|
正常传入 | 传入 | 传入 | 不涉及 | 正常运行 |
少传入一个参数 | 传入 | 不传入 | 不涉及 | 正常运行,但b参数会称为undefined |
多传入一个参数 | 传入 | 传入 | 传入 | 正常运行,但b参数会被舍弃掉。 |
利用JavaScript
第二个特性(少传入不报错),我们可以在一个函数中实现多个不同的功能。
1 | function test1(a, b) { |
解决第三个问题:
因为不定义参数并不会导致函数报错,因此函数定义时可以不必声明形参,利用JavaScript
提供的一个属性可以获得传入参数。
1 | function test() { |
函数返回值的作用
函数返回值
也就是一个函数返回的东西
阻止代码执行
页面开发时,当
return false
时,阻止DOM事件的冒泡return
语句后所有的语句都不执行。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小康博客!
评论
TwikooWaline