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

JavaScript笔记(2)
ECMAScript 变量是 松散型的(不强制类型)
<1>.基本类型值:保存在栈内存中的简单数据段,即这种值完全保存在内存中的一个位置。

<2>.引用类型值:保存在堆内存中的对象,保存的实际上只是一个指针,这个指针指向内存中的另一个位置.


内存处理:JavaScript 最常用的垃圾收集方式是标记清除。
   垃圾收集器会在运行的时候给存储在内存中的变量加上标记。 然后, 它会去掉环境中正在使用变量的标记, 而没有被去掉标记的变量将被视为准备删除的变量。


基本包装类型:
【Boolean、 Number 和 String】
,具有与各自的基本类型相应的特殊行为。
每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而能够调用一些方法来操作这些数据。
var box = 'Mr.Lee'; //定义一个基本类型
var box2 = box.substring(2);//实际创建了一个对应的基本包装类型的对象。(只有对象才能调用方法)

Boolean 类型没有特定的属性或者方法。

String 类型包含了三个属性(length、constructo、prototype)和大量的可用内置方法。


内置对象
  由 ECMAScript 实现提供的、不依赖宿主环境的对象,在 ECMAScript 程序执行之前就存在。
  <1>.Global 对象
     由于在ECMAScript中不存在独立的对象,所有函数都必须是某个对象的方法,所以有:所有在全局作用域定义的变量和函数,都是 Global 对象的属性和方法。
  <2>.Math 对象
   Math 包含的方法提供计算功能。
   Math 包含的属性大都是数学计算中可能会用到的一些特殊值。


面向对象OOP
  ECMAScript 中可以采用构造函数(构造方法)可用来创建特定的对象。
  function Box(name, age) { //构造函数模式创建对象
     this.name = name;
    this.age = age;
    this.run = function () {
    return this.name + this.age + '运行中...';
   };
  }
  1.构造函数方法没有显示的创建对象(new Object());
  2.直接将属性和方法赋值给 this 对象;
  3.没有 renturn 语句。

  var box1 = new Box('Lee', 100); //new Box()即可
  构造函数也是函数,必须用 new 运算符来调用,否则就是普通函数。
 
  继承
  ECMAScript 只支持继承,不支持接口实现.实现继承的方式依靠原型链完成。
   。。。