一.函数
普通函数
// 普通函数定义 function f1() { console.log("Hello world!"); }
带参数函数
// 带参数的函数 function f2(a, b) { console.log(arguments); // 内置的arguments对象 console.log(arguments.length); console.log(a, b); }
带返回值函数
/ 带返回值的函数 function sum(a, b){ return a + b; } console.log(sum(1, 2)); // 调用函数
匿名函数
// 匿名函数方式 var sum = function(a, b){ return a + b; } console.log(sum(1, 2));
立即执行函数
// 立即执行函数 console.log( (function(a, b){ return a + b; })(1, 2);)
ES6新增的箭头函数
var f = v => v; // 等同于 var f = function(v){ return v; }
// 如果箭头函数不需要参数或需要多个参数,就是用圆括号代表参数部分:
var f = () => 5; // 等同于 var f = function(){return 5}; var sum = (num1, num2) => num1 + num2; // 等同于 var sum = function(num1, num2){ return num1 + num2; }
函数中的arguments函数:
function add(a,b){ console.log(a+b); console.log(arguments.length) } add(1,2)
函数只能返回一个值,如果要返回多个值,只能将其放在数组或对象中返回。
函数的全局变量和局部变量:
局部变量:
在JavaScript函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它(该变量的作用域是函数内部)。只要函数运行完毕,本地变量就会被删除。
全局变量:
在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。
变量生存周期:
JavaScript变量的生命期从它们被声明的时间开始。
局部变量会在函数运行以后被删除。
全局变量会在页面关闭后被删除。
作用域:
var city = "BeiJing"; function f() { var city = "ShangHai"; function inner(){ var city = "ShenZhen"; console.log(city); } inner(); } f(); //输出结果是?

ShenZhen
var city = "BeiJing"; function Bar() { console.log(city); } function f() { var city = "ShangHai"; return Bar; } var ret = f(); ret(); // 打印结果是?

BeiJing
闭包函数
var city = "BeiJing"; function f(){ var city = "ShangHai"; function inner(){ console.log(city); } return inner; } var ret = f(); ret();

ShangHai