无聊发个问题,希望有人能解答

CoderQ 2012-02-20 02:44:17
闲来无事发现javascript的两个问题,特此请教


if({}=={}){
alert('真理永存');
}else{
alert('真理何在');
}


为何{}!={}呢?


(function(){alert(1)})();
function(){alert(2)}();


为何第一句话能执行,第二句无法执行?
但是这样写,第二句又没问题
var a = {'a':function(){alert(2)}};


我的javascript没有很系统的学过,有些基础的东西不是太懂,特此请教。
...全文
62 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
linbooooo1987 2012-02-20
  • 打赏
  • 举报
回复
{}是两个对象,(function(arg){})(1),是闭包的写法
zfk198687 2012-02-20
  • 打赏
  • 举报
回复
学习了
abirdtofly 2012-02-20
  • 打赏
  • 举报
回复
路过学一学!看一看
ywtywt337 2012-02-20
  • 打赏
  • 举报
回复
{}=={} //值为false
因为它俩是没有关系的两个对象
(function(){alert(1)})();
这是闭包写的法,你也可以写成:(function(){alert(1)}());
第一个括号表示里面是一个函数表达式,js解析器在看到‘(function’时,他会认为这是一个函数表达式
第二个括号是函数运算符。

而下面这样写要报语法错误,js解析器在看到‘function’关键字时,他会认为这是一个函数定义,后面加‘()’时它无法识别
function(){alert(2)}();

三石-gary 2012-02-20
  • 打赏
  • 举报
回复
第二种是闭包函数的写法。。。
function(){alert(2)}();
这一看就不对。。

87,920

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧