js声明和表达式

js声明和表达式

1.定义

函数声明:function 函数名(){}
函数表达式: function 函数名(可写可不写的)(){}   函数名写的属于命名函数表达式,不写的属于匿名函数表达式。

function aaa(){} : 函数声明
var a = function aaa(){} : 命名函数表达式
var a = function(){}  : 匿名函数表达式
以下都属于表达式
(function aaa(){})
~function aaa(){} 
-function aaa(){}
+function aaa(){}
!function aaa(){}

2.区别

a、 函数表达式可以直接后面加括号执行,而函数声明是不可以的。
b、 函数声明可以被提前解析出来的。
function aaa(){ alert(1); }();//浏览器报错
var a = function aaa(){ alert(1); }();//1
~function aaa(){ alert(1) }(); //1


if(true){
function aaa(){
alert(1);
}
}
else{
function aaa(){
alert(2);
}
}

aaa();//火狐、谷歌1;ie11以下是2,ie11是1。这是因为函数声明可以被提前解析出来的,浏览器不同解析方式不同。


if(true){
var a = function aaa(){
alert(1);
}
}
else{
var a = function aaa(){
alert(2);
}
}
a();//结果都是1,这种情况使用表达式


var a = function aaa(){
alert(1);
alert(typeof aaa);  //内部是可以找到的
}


a();  //1   function
aaa();  //外面是找不到的,报错




(function aaa(){ alert(1) })
aaa();//报错

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值