函数
函数:由事件驱动的或者当它被调用时执行的可重复使用的代码块。语法格式:
function 函数名(参数1,参数2) { //用关键字function来声明函数 这里要执行的代码 } 函数名(参数1,参数2) //调用函数
注意:javaScript 对大小写敏感。关键词 function 必须是小写的,并且必须以与函数名称相同的大小写来调用函数。
函数的声明
第一种function关键字:
function foo(x, y) { return x + y }
这种声明方式可以通过函数名来调用
第二种:函数表达式
这种方式:没有函数名而是通过变量名来代替函数名,调用函数的时候通过访问变量来调用
var foo = function (x, y) { return x + y };
第三种:function构造函数,没有人用
var foo = new function()
带有返回值的函数
var foo = function (x, y) { return x + y }; var f = foo(3, 4); alert(f)
注意:在使用 return 语句时,函数会停止执行并不是整个javascript 停止,并返回指定的值 ,函数的返回值你不需要声明他只需要使用 return 运算符后跟要返回的值即可。如果return没有返回值,那么接收return的值等于undefined
// 普通函数定义 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; } sum(1, 2); // 调用函数 // 匿名函数方式 var sum = function(a, b){ return a + b; } sum(1, 2); // 立即执行函数 (function(a, b){ return a + b; })(1, 2);
局部变量:
在JavaScript函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它(该变量的作用域是函数内部)。只要函数运行完毕,本地变量就会被删除。
function myfunction() { var n = 3; //这里用var声明 } myfunction(); console.log(n); //结果报错,没有定义
全局变量:
1.在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。
n = 11; var foo = function () { console.log('foo的n', n) }; function myfunction() { console.log('myfunction的n', n) } myfunction(); foo(); console.log('全局的n',n);
结果:
myfunction的n 11 foo的n 11 全局的n 11
2.如果在函数内没有声明该变量时,该变量是全局变量.
function myfunction() { n = 3; //这里没有用var声明,该变量就是全局变量 } myfunction(); console.log(n);
结果:
3
变量生存周期:
JavaScript变量的生命期从它们被声明的时间开始。
局部变量会在函数运行以后被删除。
全局变量会在页面关闭后被删除。
几个例子:
var city = "BeiJing"; function f(){ var city = "ShangHai"; function inner(){ console.log(city); } return inner; } var ret = f(); ret();
var city = "BeiJing"; function Bar() { console.log(city); } function f() { var city = "ShangHai"; return Bar; } var ret = f(); ret(); // 打印结果是?
来源:https://www.cnblogs.com/sticker0726/p/10926242.html