松散型的(不强制类型)
<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 只支持继承,不支持接口实现.实现继承的方式依靠原型链完成。
。。。
ECMAScript 变量是