JavaScript Succinctly 读后笔记

  1.JavaScript does not have block scope
  2.Scope is determined during function definintion,  not invocation -- Closoure
  3.Replacing the prototype property with new Object removes the default constructor property

  4. the default return value of new constructor is this.

 

var Person = function(){
  this.name = "andy";
  // return this;
}

console.log(new Person().name); // output: andy

 5. some usful functions

function existy(x) { return x != null };

 test case for existy -- JavaScript only has two values -- null and undefined that signify nonexistence

existy(null);
//=> false
existy(undefined);
//=> false
existy({}.notHere);
//=> false
existy((function(){})());
//=> false
existy(0);
//=> true
existy(false);
//=> true
The use of existy

 =================

function truthy(x) { return (x !== false) && existy(x) };

 test cases for truthy

truthy(false);
//=> false
truthy(undefined);
//=> false
truthy(0);
//=> true
truthy('');
//=> true

 

 

posted @ 2013-07-23 14:08  卜海清  阅读(230)  评论(0编辑  收藏  举报