什么是函数?编程
函数是事件驱动或者被调用时执行的重复代码块。函数
做用域:spa
1. 全局做用域code
2. 函数做用域(局部做用域)blog
var i = 100; //全局做用域
function fun(){
var j = 10; //局部做用域
console.log(i + j);
}
fun();
全局做用域与函数做用域是相对的,好比:事件
i是全局做用域,j和k是函数做用域,而j是k的全局做用域。作用域
var i = 100; //全局做用域
function fun(){
var j = 10; //局部做用域
function fun2(){
var k = 20;
}
}
fun();
使用var关键字声明的变量不是全局就是局部,不是var声明的变量都是全局变量。io
function fun(){
j = 10; //局部做用域
function fun2(){
var k = 20;
}
}
fun();
console.log(j);
console.log(k)
返回值 j = 10;console
k is not defined!function
函数的表达式:
var fun1 = function fun(){
console.log("hello");
}
函数表达式:将函数赋给fun1以后函数名fun将被放弃,这意味着后面对函数的调用,只有fun1有效,而fun是无效的,他只有在返回函数名的以后,才有fun名称。
fun1.name ---->fun
fun.name ---->fun is not defined !
fun1.length ----->5
fun.length ----->fun is not defined !
函数的声明:
function fun2(){
console.log("world");
}
区别:
函数表达式能够直接被执行符号执行,而函数声明不能,只有函数声明转换为函数表达式是才能够被执行符号执行。
函数声明变为函数表达式,只须要在前面添加"+","-","!"这三种中的其中一个就行。
+function fun(){ //函数声明 ,在函数的前面能够加上+ - !能够让函数声明变成函数表达式
console.log("hello");
}()
var fun2 = function(){ //函数表达式
console.log("world");
}()
当即执行函数:
好处:避免写全局变量,全部的内容所有都卸载当即执行函数中。
当即执行函数必须是函数表达式。
当即执行函数的两种表现形式:
1. (function(){})()
2. (function(){}())
二者在功能上没有什么区别,主要看编程人员的习惯。