JavaScript的一些技巧

所属:JavaScript, Learning

1. 为什么有一些匿名函数前面会多个分号呢?

1
2
3
;(function() {
// coding...
});
  • 防止多文件合并成一个文件后,高压缩导致语法错误。
  • 这是一个匿名函数,一般js库都采用这种自执行的匿名函数来保护内部变量 (function(){})()
  • 因为undefined是window的属性,声明为局部变量之后,在函数中如果再有变量与undefined作比较的话,程序就可以不用搜索undefined到window,可以提高程序性能

2. 这样声明变量有什么好处呢?

1
var obj = obj || {};
  • 如果第一个操作数是对象,则返回第一个操作数;
  • 如果第一个操作数的求值结果为false,则返回第二个操作数;
  • 如果两个操作数都是对象,则返回第一个操作数;
  • 如果两个操作数都是null,则返回null;
  • 如果两个操作数都是NaN,则返回NaN;
  • 如果两个操作数都是undefined,则返回undefined;

简单来说就是:如果已存在obj,则保持不变,否则将 {} 赋值给obj。