1.基本包装类型:Boolean,Number,String.引用类型与基本包装类型的主要区别就是对象的存期,使用new创建的引用类型的实例,在执行流离开当前作用域之前一直都保存在内存中,而自动创建的基本包装类型对象,则只在于一行代码的执行瞬间,然后立即就会被销毁;
2.Boolean类型:var boolObj = new Boolean(true);
Number类型:var numObj = new Number(10);
注意转型函数与构造函数逇的使用区别;
3.String类型:var strObj = new String("string ");
字符方法:charAt(),charCodeAt();
字符串操作方法:contact(),slice(),substr(),subString();
字符串位置方法:indexOf(),lastIndexOf();
去前后空格:trim();
大小写转换:toLowerCase(),toUpperCase();
模式匹配:match(),search();
4.单体内置对象:Global和Math
Global:不属于任何其他对象的属性和方法最终都属于Global。web浏览器将这个全局对象作为window对象的一部分加以实现。
Math:保存数学公式和信息的一个公共位置;
5.ECMA-262中对对象的定义:无序属性的集合,其属性可以包含基本值,对象或者函数。
6.创建对象的几个模式:
工厂模式:用函数来封装以特定接口创建对象的细节;
构造函数模式;
原型模式;
组合使用构造函数模式和原型模式:构造函数模式用于定义实例属性,而原型模式用于定义方法和共享的属性;
动态原型模式;
寄生构造函数模式:除引用new操作符并把函数叫做构造函数外与工厂模式是一样的;
稳妥构造函数模式;
7.原型链的概念:JavaScript主要通过原型链实现继承,原型链的构建是通过将一个类型实例赋值给另一个构造函数的原型对象实现的。注意,对象字面量创建原型方法或者重写原型对象时会切断原来的关系;
8.原型链的问题是对象实例共享所有继承的属性和方法,因此不适宜单独使用,解决方法是借用构造函数,即在子类型的构造函数的内部调用超类型的构造函数;
9.组合继承:使用原型链继承共享的属性和方法,通过借用构造函数继承实例的属性;
10.闭包是指有权访问另一个函数作用域中的变量的函数;
11.递归函数应该始终使用arguments.callee来递归地调用自身,不要使用函数名,因为函数名可能会发生变化;
12.当在函数内部定义了其他函数时就创建了闭包;
13.闭包的作用域链包含着他自己的作用域,包含函数的作用域和全局作用域。通常,函数的作用域及其所有变量都会在函数执行结束后被销毁。但是,当一个函数返回一个闭包时,这个函数的作用域将会在内存中保存到闭包不存在为止。