1.函数声明方式:数组
示例代码:函数
function fu(){ console.log('一花一世界') }
2.字面量/直接量方式:spa
示例代码:code
var fun = function(){ console.log('这是一个函数'); }; // 调用函数 -> 函数体的内容才被执行 fun();
示例代码:生命周期
/* 调用函数 */ fu()
var v = 100;/* 定义变量,并初始化值 */ console.log(v);/* 调用变量 */ // 变量是容许被从新赋值的 v = function(){ console.log('这是一个函数'); } // v既是个变量,又是个函数 console.log(v);// 调用结果为 [Function: v] v();/* 函数的调用 */
控制台效果图:图片
示例代码:ip
var v2 = 200; function v2(){ console.log('这是一个函数'); } // v2是变量 - TypeError: v2 is not a function - 表示 v2 不是一个函数 console.log(v2); v2();
控制台效果图:作用域
形参 : 就是定义函数后的小括号叫形参 - function fun(形参)it
实参 : 就是调用函数后的小括号叫实参 - fun(实参)io
示例代码:
function fun(a){// 在函数中定义一个变量,但未初始化值 console.log(a); } fun(100, 200);// 为函数中定义的变量初始化值
函数的return语句
示例代码:
function fun(){ console.log('一花一世界'); return 100; } /* 将函数的返回值 赋值到变量中 */ var result = fun(); console.log(result); console.log(fun());/* 打印函数调用的结果 */ console.log(fun);/* 打印变量的值 */
函数的return语句
示例代码:
function fn(){ console.log('这是return语句以前...'); return; console.log('这是return语句以后...'); } var result = fn(); console.log(result);// 100
全局做用域(函数做用域以外的范围) - 全局变量
全局做用域与局部做用域示例代码对比:
var v1 = 100; console.log(v1); function fun(){ /* 函数做用域 - 局部变量 * 局部变量的做用域 - 当前函数做用域 */ var v2 = 200; console.log(v1); console.log(v2); } console.log(v1); fun(); // 全局做用域不能访问局部变量 // console.log(v2); function fn(){ console.log(v2); } fn();
局部变量 - 做用于当前函数做用域中
函数的参数 - 做用于当前函数体中
示例代码:
var num = 200; function fun(a){ var v = 100; console.log(v + a); } fun(num);
控制台调用图:
示例代码:
/* 按值传递 */ var num = 100;/* 定义一个全局变量 */ /* 定义一个函数 */ function fun(num){/* 形参 */ num++; console.log('这是函数内部的值: ' + num);// 101 } /* 调用指定函数 - 实参传递的是全局变量的值 */ fun(num);/* 实参 */ /* 调用指定全局变量 */ console.log('这是全局做用域的值: ' + num);// 100 101 var v = 200; function fn(){ v++; } fn(); console.log(v);// 201
表示在使用变量时,先调用变量,在对变量进行定义
示例代码:
console.log(num);// undefined var num = 100;/* 定义全局变量 */ /* 定义函数 */ function fun(){ // 全局变量与局部变量同名时 - 在当前函数做用域中只能访问局部变量 console.log(num);// undefined var num = 200;/* 定义局部变量 */ // 就近原则 console.log(num);// 200 } /* 调用函数 */ fun(); // 局部变量在全局做用域中没法访问 - 只能访问全局变量 console.log(num);// 100
控制台调用图: