《JavaScript编程全解》
Liber 2014-02-18 13:31

007:
另一方面,扩展语言是在内建对象的应用程序(宿主环境)中运行程序的。宿主应用程序会在这时收到一些运行时的上下文信息。JavaScript会以全局对象作为根节点的对象树的形式,接受这些上下文信息。在启动时,JavaScript从宿主环境获取的对象树就被成为宿主对象

027:

  var sobj1 = new String('abc');
  var sobj2 = new String('abc');
  sobj1 == sobj2; // false
  sobj1 === sobj2; // false
  var sobj = new String('abc');
  var s = 'abc';
  sobj == s; // true
  sobj === s; // false

081:

  var a = a || 7;

082:
访问未声明的变量会出错,但访问不存在的属性并不会引起错误。

  print(x); // ReferenceError
  print(this.x); // undefined

090:
在C++中delete的功能是释放所引用的对象的内存,而在JavaScript中delete只用于删除对象中的属性。用映射中的属于来说就是,仅仅从映射中删除键,使其对应的值(对于对象来说也就是属性值)与该键不再有对应关系。虽然失去了引用的对象最终可能因为垃圾回收机制而消失,不过这并不是delete运算的直接功能。

096:

  var obj = {
    x: 3,
    doit: function() {
      print('method is called.' + this.x); 
    }
  };
  obj.doit(); // method is called. 3
  
  var fn = obj.doit;
  fn(); // method is called. undefined
  
  var x = 5;
  fn(); // method is called. 5
  
  var obj2 = { x: 4, doit2: fn };
  obj2.doit2(); // method is called. 4

补充:《JavaScript高级程序设计》第三版

补充:《JavaScript高级程序设计》第三版

126:

 function f(arg) {
  var n = 123 + Number(arg);
  function g() {
    print('n is' + n);
    // print('g is called');
  }
  return g;
 }
 
 var g2 = f(2);
 var g3 = f(3);
 
 g2(); // n is 125
 
 g3(); // n is 126
 
 var n = 7;
 g3(); // n is 126

240:
pipe()具有两种功能。其一是更改参数的值。
另一个功能是Deferred对象链。

318:
没有明确指定有效期限的Cookie的有效期仅限于浏览器进程存在的范围内。也就是说,一旦浏览器关闭,Cookie就无效了。
而在指定了Cookie的有效期后,它就会被保存在浏览器所在的本地磁盘中,在浏览器重启后Cookie也有效。
Web应用在接收了用户ID与密码之后,会通过内部的数据库或目录验证密码。如果验证成功,就会创建用于管理登录状态的会话,并将会话ID作为Cookie值返回。
浏览器会将Cookie发送至Cookie发表者的Web服务器中,对于发送至其他Web服务器的请求,则不会发送该Cookie。这一限制与跨源限制相类似。