js中函数调用的简单问题

var def=function mm(a,b){
return a+b;
}(1,3);
为什么上面代码可以调用,而下面的代码不可以调用.
function(a,b){
return a+b;
}(1,3);

语法错误,可以加操作符变为表达式

 ~function(a,b){
return a+b;
}(1,3);

参考:javascript函数(function)前的运算符号作用

百度下函数的定义和声明