// 函数声明方式
function name() {
// code
}
// 函数表达方式
var name = function () {
// code
};
var fn = "message";
function fn() {
return 100;
}
console.log(fn); //输出message
fn();//报错 TypeError: fn is not a function
var fn = "message";
var fn = function () {
return 100;
};
console.log(fn); //输出 [Function: fn]
所以我们的得出结论:
传入参数数量的情况
undefined
function test1(a, b) {
console.log(a, b);
}
test1(1);
test1(1, 2, 3);
情况 | 参数a | 参数b | 参数c | 结果 |
---|---|---|---|---|
正常传入 | 传入 | 传入 | 不涉及 | 正常运行 |
少传入一个参数 | 传入 | 不传入 | 不涉及 | 正常运行,但b参数会称为undefined |
多传入一个参数 | 传入 | 传入 | 传入 | 正常运行,但b参数会被舍弃掉。 |
利用JavaScript
第二个特性(少传入不报错),我们可以在一个函数中实现多个不同的功能。
function test1(a, b) {
console.log(a, b);
if (b === undefined) {
console.log("undefind");
}
}
解决第三个问题:
因为不定义参数并不会导致函数报错,因此函数定义时可以不必声明形参,利用JavaScript
提供的一个属性可以获得传入参数。
function test() {
console.log(arguments.length); //输出 4
console.log(arguments); // 输出 [Arguments] { '0': 1, '1': 2, '2': 3, '3': 4 }
console.log(arguments[0]); //可以以数组方式进行取值 输出1
}
test(1, 2, 3, 4);
return false
时,阻止DOM事件的冒泡
return
语句后所有的语句都不执行。