补充:
JS数据类型:
*特殊类型-null/undefined
*内置对象(基本类型)-Number String Date Math Boolean Array Function
*外部对象- window document
*自定义对象
自定义对象
- 一种特殊的数据类型,由属性和方法封装而成
- 创建方式分为三种:
1)直接量
eg:var student={“name”:”jack”,”age”:20,”work”:function(){…}};
注意:一个大括号表示一个对象,每个对象由若干键值对组成,key通常是字符串,value可以是任意类型的数据,多个键值对之间用逗号隔开
2)构造器(new的函数,通常首字母大写)
*JS自带的构造器
eg:new Date();/new RegExp(“”,”“);/new Function();/new Object();(Object相当于Java中的HashMap)
*自己写的构造器
//this代表创建出来的对象 .key代表对象的属性或者行为
eg: function Coder(name,age,work){
this.name=name;
this.age=age;
this.work=work;
}
var coder=new Coder("Jack",20,function(){...}); //也可不传参
3)使用create方法创建(最新版本的JS提出的API,大部分浏览器还未实现)
4)总结:
*无论何种方式创建的自定义对象本质上都一样(object)
*要返回数据给别人使用或者需要别人传入特定数据,用自定义构造器创建对象;
若封装的数据自己用,并且已知这些数据,用直接量创建;
封装的数据自己用,但未知这些数据,用Object创建对象
事件
- 指页面元素状态改变,或者用户操作鼠标或者键盘时触发的动作
- 任何事件触发后会产生一个event对象
- 绑定事件方式:
*直接定义事件:即在元素内直接绑定
*后绑定事件:写在body末尾:在页面加载后,通过JS获取元素并为其绑定事件
写在head中:在onload事件中获取元素并为其绑定事件,onload是页面加载事件,在页面加载后自动触发,写在该事件内的JS和写在body末尾的JS等效 - 获取event对象
*直接定义事件:调用该函数时传入了event,可通过arguments[0]获取,也可通过参数e接收
*后绑定事件:后绑定事件时浏览器会自动给函数传入event,可以通过arguments[0]获取event或者声明参数来接收
*获取事件源: var obj=event.target||e.srcElement(考虑浏览器兼容问题) - 事件冒泡:
*概念:事件冒泡即事件由内向外传播的机制
*作用:用来简化事件的定义,不需要在每个子元素上分别定义事件,只需统一在父元素上定义一次事件即可
*需要解决的问题:需要明确知道事件的来源(事件源),通过事件对象可以获取事件源