有人可以告诉我,我可以在javascript中将函数声明为var并在同一个exression(程序行)中执行吗?
var tmp = 0,
a = function() {
++tmp; /*rest of code*/
};
a();
console.log(tmp);
答案 0 :(得分:1)
如果你用parentesis包含一个函数声明,你会得到一个表达式。 分配也是一个表达式(被评估为分配的值),您可以利用这一事实来获得结果。
var tmp = 0, a;
(a = function() { ++tmp;})();
a();
console.log(tmp);

说,对我来说,我不想阅读这样的代码。它容易出错和误解。