创建函数
function fun1(parameter1, parameter2) {}
let fun2 = function (parameter1, parameter2) {}
调用函数
function fun1(parameter1, parameter2) {}
let fun2 = function (parameter1, parameter2) {}
fun1(actual arguments1, actual arguments2);
fun2(actual arguments1, actual arguments2);
函数参数
function fun(num1, num2) {
console.log(num1 + num2);
}
fun(1, 2); // 3
fun(1); // NaN:num2 = undefined
fun(1, 2, 3); // 3
函数返回值
function sum(num1, num2) {
return num1 + num2;
}
console.log(sum(1, 2)); // 3
return
会终止函数return
后面的代码不会执行return
只能返回一个值,多个值以最后一个为准- 函数默认返回
undefined
arguments
arguments
对象存储了传递的所有实参(伪数组)
function fun() {
console.log(arguments);
}
fun(1, 2, 3);
// [Arguments] { '0': 1, '1': 2, '2': 3 }
立即执行函数
;(function () { // 匿名函数
console.log('立即执行函数') // 立即执行函数
})()
;(function (name) {
console.log(name) // yingximu
})('yingximu')
回调函数
/*
* 将函数作为参数调用的函数称为回调函数
*
* 调用fun函数,传递一个匿名函数作为参数
* fun接收这个匿名函数并且调用
* callbackFn = function () {
* console.log('callbackFn')
* }
*/
function fun(callbackFn) {
callbackFn()
}
fun(function () {
console.log('回调函数')
})
箭头函数(ES6)
/*
* const fun1 = function () {
* console.log('fun1')
* }
*/
const fun1 = () => {
console.log('fun1');
}
/*
* const fun2 = function (num) {
* console.log(num)
* return num
* }
*
* const fun2 = (num) => {
* console.log(num)
* return num
* }
*/
const fun2 = num => {
console.log(num)
return num
}
/*
* const fun3 = (num) => {
* return num + 1
* }
*/
const fun3 = num => num + 1
/*
* const add = function (num1, num2) {
* return num1 + num2
* }
*/
const add = (num1, num2) => num1 + num2
参数默认值
function sum(num1 = 0, num2 = 0) {
return num1 + num2
}
console.log(sum()) // 0
console.log(sum(1)) // 1
console.log(sum(1, 2)) // 3
function connect({ host = '127.0.0.1', username, password, port }) {
console.log(host, username, password, port)
}
connect({ username: 'root', password: 'root', port: '3306' }) // 127.0.0.1 root root 3306
connect({ host: 'localhost', username: 'root', password: 'root', port: '3306' }) // localhost root root 3306
rest
该方式的参数放在最后,以数组方式存储传递过来的实参
function sum(...args) {
console.log(args)
}
sum(1, 2, 3, 4, 5, 6) // [ 1, 2, 3, 4, 5, 6 ]