JavaScript核心笔记2012-8-18----------------------说明:1、本文档原型来自于圣思园张龙发布的JavaWeb视频js部分。2、整理者联系方式:qq(215107821)、邮箱(lbw891001@163.com)。3、本文档共计21条,均为JavaScript面向对象部分的精华(其中20、21是精华中的精华)。----------------------1、在JavaScript中函数(function)就是对象。2、在JavaScript中没有方法(函数)重载的概念。示例一:(看结果。。。)30示例二:(探缘由。。。)303、在JavaScript中有一个Function对象,所有自定义的函数都是Function对象类型的。Function对象接受的所有参数都是字符串类型的,其中最后一个参数就是要执行的函数体,而前面的参数则是函数真正接收的参数。示例一:40示例二:304、在JavaScript中,每个函数都有一个隐含的对象arguments,表示给函数实际传递的参数。31020305、每一个函数对象都有一个length属性,表示该函数期望接收的参数个数。它与函数的arguments不同,arguments.length表示函数实际接收的参数个数。306、模拟重载:1030607、JavaScript中有五种原始数据类型:Undefined、Null、Boolean、Number以及String。示例一:s1:false,s2:string,s3:object,s4:boolean,s5:number,8、Undefined数据类型中的值只有一个:undefined。9、Null数据类型的值只有一个:null。10、Boolean数据类型的值有两个:true和false。11、JavaScript中没有char数据类型。12、typeof是一元运算符,后跟变量的名称,用于获取变量的数据类型,其返回值有5个:undefined、boolean、number、string以及object。13、在JavaScript中,如果函数没有申明返回值,那么会返回undefined。undefined14、null和undefined的关系:undefined实际上是从null派生出来的。undefined,true15、强制类型转换:在JavaScript中有3种强制类型转换:Boolean(value),Number(value),String(value)。s1:3,s2:true,s3:hello,s4:true,16、在JavaScript,所有对象都是从Object对象继承过来的。Object中的属性是不可枚举的(propertyIsEnumerable返回false),因此无法通过for...in语句得到其中的属性。17、在JavaScript中,可以动态的添加属性,也可以动态的删除对象的属性。18、在JavaScript中定义对象的第二种方式:19、对于JavaScript数组的sort方法来说,他会先将待排序的内容转换为字符串(调用toString()方法),按照字符串的先后顺序进行排序。示例一:示例二:示例三:示例四:-------------------------------------------------------以下是重点中的重点-------------------------------------------------------20、JavaScript中定义对象的几种方式(JavaScript中没有类的概念,只有对象):1)基于已有对象扩充其属性和方法:2)工厂方式:带参数的工厂方法:让一个函数对象被多个对象所共享,而不是每一个对象拥有一个函数对象。3)构造函数方式可以在构造对象时传递参数4)原型(“prototype”)方式示例一:示例二:如果使用原型方式创建对象,那么生成的所有对象会共享原型中的属性,这样一个对象改变了该属性也会反映到其他对象当中。(尚未完全理解)单纯使用原型方式定义对象无法在构造函数中为属性附初值,只能在对象生成后再去改变属性值。使用原型+构造函数方式来定义对象,对象之间的属性互不干扰,各个对象间共享同一个方法。5)动态原型方式:在构造函数中通过标志量让所有对象共享一个方法,而每个对象拥有自己的属性。21、JavaScript中的继承。1)对象冒充2)call方法方式:call方法是Function对象中的方法,因此我们定义的每个函数都拥有该方法。可以通过函数名来调用call方法,call方法的第一个参数会被传递给函数中的this,从第二个参数开始,逐一赋值给函数中的参数。使用call方法方式实现对象的继承3)apply方法方式4)原型链方式(无法给构造函数传参数)5)混合方式(推荐)