(1)函数声明和函数表达式(根据他的上下文来进行判断)
函数声明:就和我们一般写的函数是没有多大的区别的
function wh(){
//这里就是函数里面执行的语句
}
函数表达式:需要注意的就是函数表达式中函数名字(可有可无),如果没有函数名字的话称为匿名函数表达式,如果有名字的话称为命名函数表达式
函数表达式的几种形式
>1。将函数赋给一个变量
var a = function (){};
>2 将函数放在一个圆括号里面
(function f(){})
>3其中给函数前面加上了位运算符(!,+,-...)
(2)函数声明,函数表达式的区别:
1.函数声明是可以直接在后面加上括号进行执行的,但是函数表达式是不可以的
2.函数声明是可以被提前解析出来的,函数表达式只能等到逐行解析到本行的时候才可以被解析
(3)匿名函数表达式和命名函数表达式的区别
var a = function aaa(){alert(1);};
如果说直接为:a();在这里相当于执行aaa函数,这里就会弹出1
如果说这里为:aaa();这个时候就会出错,因为在这个函数的名字只有在内部的时候才能被访问
看一个面试题:
(function aaa(){alert(1)};)
aaa();
这里就会报错因为在函数表达式中,函数名字在外面是访问不到的