判断一个变量是否为空

if (!myObj) {
    var myObj = { };
  }
Javascript语言是"先解析,后运行",解析时就已经完成了变量声明,var声明变量会提前,直接赋值的不会。
var global = this; // 下面的判断可以用在在其他上下文
if (!global.myObj) {}
直接使用对象属性不会出现未定位语法错误
typeof myObj == "undefined"

null指的是已经赋值为null的空对象,即这个对象实际上是有值的,而undefined指的是不存在或没有赋值的对象

使用in运算符,判断myObj是否为顶层对象的一个属性

var obj = {};
obj.property.number = 2; //这时会出现 'obj.property is undefined' 的错误

运算符中的操作数只能是个表达式。。。