关闭

js声明和表达式

标签: 声明和表达式
23人阅读 评论(0) 收藏 举报
分类:

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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:24次
    • 积分:11
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档
    阅读排行
    评论排行