日期:2014-05-16  浏览次数:20386 次

回顾一下JavaScript的null, undefined

回顾一下JavaScript的null, undefined
2011年01月01日
   1、null, undefined在条件判断时都为false值 
  assert(! null ); 
  assert(! undefined); 
  还有 空字符, 0, NaN 
  assert(! ""); 
  assert("\n\t" == false) 
  assert(! 0); 
  assert(! NaN); 
  2、undefined值派生自null值,但是值等类型不等 
  assert(null == undefined); //值等 
  assert(! (null === undefined));// 值等类型不等 
  null值的类型是Object,undefined值的类型是Undefined 
  assert(typeof null == 'object'); 
  assert(typeof undefined == 'undefined'); 
  3、变量已声明但未初始化,其值是undefined 
  var a; //相当于var a = undefined; 
  assert(a == undefined); 
  assert(a == null); 
  assert(a != 1); 
  assert(typeof a == 'undefined'); 
  4、未声明过的变量不可参与表达式计算,但可使用typeof操作符判断其类型 
  try{ 
  c == undefined ? 0 : 1; // 不可使用未声明的变量参与计算, 否则抛ReferenceError异常 
  }catch(e){ 
  console.log(e); //ReferenceError: c is not defined 
  } 
  assert(typeof(b) == 'undefined'); // 未声明过的变量类型为Undefined 
  注: assert方法简单实现: 
  function assert(expr){ 
  if(expr !== true){ 
  throw "Assert error"; 
  } 
  }