无聊发个问题,希望有人能解答
闲来无事发现javascript的两个问题,特此请教
JScript code
if({}=={}){
alert('真理永存');
}else{
alert('真理何在');
}
为何{}!={}呢?
JScript code
(function(){alert(1)})();
function(){alert(2)}();
为何第一句话能执行,第二句无法执行?
但是这样写,第二句又没问题
var a = {'a':function(){alert(2)}};
我的javascript没有很系统的学过,有些基础的东西不是太懂,特此请教。
------解决方案--------------------
{}=={} //值为false
因为它俩是没有关系的两个对象
(function(){alert(1)})();
这是闭包写的法,你也可以写成:(function(){alert(1)}());
第一个括号表示里面是一个函数表达式,js解析器在看到‘(function’时,他会认为这是一个函数表达式
第二个括号是函数运算符。
而下面这样写要报语法错误,js解析器在看到‘function’关键字时,他会认为这是一个函数定义,后面加‘()’时它无法识别
function(){alert(2)}();