function show() {
return '这是一个自定义函数';
}
console.log(show());
示例2:带参数的函数
function maxNum(num1, num2) {
if (num1 > num2) {
return num1;
} else {
return num2;
}
}
console.log(maxNum(10, 30));
2. 函数参数的高级用法
示例3:arguments对象 - 处理不定数量参数
function sum() {
console.log('参数个数:' + arguments.length);
console.log('arguments对象:', arguments);
var result = 0;
for (var i = 0; i < arguments.length; i++) {
result = result + arguments[i];
}
return result;
}
sum(1, 2, 3, 4, 5);
示例4:ES6剩余参数和默认参数
// 默认参数
function greet(name, say = 'Hi, I\'m ') {
return say + name;
}
// 剩余参数
function transferParam(num1, ...theNums) {
console.log('第一个参数:' + num1);
console.log('其余参数:', theNums);
return theNums;
}
3. 变量作用域
示例5:全局变量 vs 局部变量
var a = 'one'; // 全局变量
function test() {
var a = 'two'; // 局部变量
console.log('函数内的a:' + a);
}
test();
console.log('函数外的a:' + a);
示例6:作用域链
var i = 26;
function fn1() { // 第1个函数
var i = 24;
function fn2() { // 第2个函数
function fn3() {// 第3个函数
console.log('输出的i值:' + i);
}
fn3();
}
fn2();
}
fn1();
// 传统函数
var add1 = function(a, b) {
return a + b;
};
// 箭头函数完整写法
var add2 = (a, b) => {
return a + b;
};
// 箭头函数简写
var add3 = (a, b) => a + b;
// 单参数箭头函数
var sayHello = name => {
return 'Hello, ' + name;
};