datetime:2019/7/4 15:38
author:nzb
对象
JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...
- 对象只是一种特殊的数据。对象拥有属性和方法。
- 此外,JavaScript 允许自定义对象。
访问对象的属性
- 属性是与对象相关的值。
访问对象属性的语法是:
objectName.propertyName
下面这个例子使用了 String 对象的 length 属性来获得字符串的长度:
var message="Hello World!";
var x=message.length;
在以上代码执行后,x 的值将是:
12
访问对象的方法
- 方法是能够在对象上执行的动作。
您可以通过以下语法来调用方法:
objectName.methodName()
下面这个例子使用了 String 对象的 toUpperCase() 方法来将文本转换为大写:
var message="Hello world!";
var x=message.toUpperCase();
在以上代码执行后,x 的值将是:
HELLO WORLD!
创建 JavaScript 对象
- 通过 JavaScript,您能够定义并创建自己的对象。
创建新对象有两种不同的方法:
定义并创建对象的实例
person=new Object(); person.firstname="John"; person.lastname="Doe"; person.age=50; person.eyecolor="blue"; // 或 person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};
使用函数来定义对象,然后创建新的对象实例
function person(firstname,lastname,age,eyecolor) { this.firstname=firstname; this.lastname=lastname; this.age=age; this.eyecolor=eyecolor; }
在JavaScript中,this通常指向的是我们正在执行的函数本身,或者是指向该函数所属的对象(运行时)
创建 JavaScript 对象实例
一旦您有了对象构造器,就可以创建新的对象实例,就像这样:
var myFather=new person("John","Doe",50,"blue");
var myMother=new person("Sally","Rally",48,"green");
把属性添加到 JavaScript 对象
person.firstname="John"; person.lastname="Doe"; person.age=30; person.eyecolor="blue"; x=person.firstname;
在以上代码执行后,x 的值将是:
John
把方法添加到 JavaScript 对象
function person(firstname,lastname,age,eyecolor) { this.firstname=firstname; this.lastname=lastname; this.age=age; this.eyecolor=eyecolor; this.changeName=changeName; function changeName(name) { this.lastname=name; } }
String对象
String 对象用于处理已有的字符块。
一个字符串可以使用单引号或双引号。
字符串(String)使用长度属性length来计算字符串的长度。
字符串使用 indexOf() 来定位字符串中某一个指定的字符首次出现的位置。
var str="Hello world, welcome to the universe."; var n=str.indexOf("welcome");
- 如果没找到对应的字符函数返回-1
- lastIndexOf() 方法在字符串末尾开始查找字符串出现的位置。
内容匹配:match()函数用来查找字符串中特定的字符,并且如果找到的话,则返回这个字符。
替换内容:replace() 方法在字符串中用某些字符替换另一些字符。
字符串大小写转换:字符串大小写转换使用函数 toUpperCase() / toLowerCase()
字符串转为数组:字符串使用split()函数转为数组。
特殊字符:Javascript 中可以使用反斜线(\)插入特殊符号,如:撇号,引号等其他特殊符号。
| 代码 | 输出 | |------|-----| | \' | 单引号 | | \" | 双引号 | | \ | 斜杆 | | \n | 换行 | | \r | 回车 | | \t | tab | | \b | 空格 | | \f | 换页 |
字符串属性和方法
属性:
| 属性 | 描述 | |------|-----| | constructor | 对创建该对象的函数的引用 | | length | 字符串的长度 | | prototype | 允许您向对象添加属性和方法 |
方法:
| 方法 | 描述 | |-----|------| | charAt() | 返回在指定位置的字符 | | charCodeAt() | 返回在指定的位置的字符的 Unicode 编码 | | concat() | 连接两个或更多字符串,并返回新的字符串 | | fromCharCode() | 将 Unicode 编码转为字符 | | indexOf() | 返回某个指定的字符串值在字符串中首次出现的位置 | | includes() | 查找字符串中是否包含指定的子字符串 | | lastIndexOf() | 从后向前搜索字符串,并从起始位置(0)开始计算返回字符串最后出现的位置 | | match() | 查找找到一个或多个正则表达式的匹配 | | repeat() | 复制字符串指定次数,并将它们连接在一起返回 | | replace() | 在字符串中查找匹配的子串, 并替换与正则表达式匹配的子串 | | search() | 查找与正则表达式相匹配的值 | | slice() | 提取字符串的片断,并在新的字符串中返回被提取的部分 | | split() | 把字符串分割为字符串数组 | | startsWith() | 查看字符串是否以指定的子字符串开头 | | substr() | 从起始索引号提取字符串中指定数目的字符 | | substring() | 提取字符串中两个指定的索引号之间的字符 | | toLowerCase() | 把字符串转换为小写 | | toUpperCase() | 把字符串转换为大写 | | trim() | 去除字符串两边的空白 | | toLocaleLowerCase() | 根据本地主机的语言环境把字符串转换为小写 | | toLocaleUpperCase() | 根据本地主机的语言环境把字符串转换为大写 | | valueOf() | 返回某个字符串对象的原始值 | | toString() | 返回一个字符串 |
Date日期对象
- Date() 方法获得当日的日期。
- getFullYear() 获取年份。
- getTime() 返回从 1970 年 1 月 1 日至今的毫秒数。
- setFullYear() 设置具体的日期。
- toUTCString() 将当日的日期(根据 UTC)转换为字符串。
- getDay() 和数组来显示星期,而不仅仅是数字。
- 创建日期
- Date 对象用于处理日期和时间。
- 可以通过 new 关键词来定义 Date 对象。以下代码定义了名为 myDate 的 Date 对象:
- 有四种方式初始化日期:
- new Date() // 当前日期和时间
- new Date(milliseconds) //返回从 1970 年 1 月 1 日至今的毫秒数
- new Date(dateString)
- new Date(year, month, day, hours, minutes, seconds, milliseconds)
- 上面的参数大多数都是可选的,在不指定的情况下,默认参数是0。
- 实例化一个日期的一些例子:
- var today = new Date()
- var d1 = new Date("October 13, 1975 11:13:00")
- var d2 = new Date(79,5,24)
- var d3 = new Date(79,5,24,11,33,0)
- 实例化一个日期的一些例子:
- 设置日期
- 通过使用针对日期对象的方法,我们可以很容易地对日期进行操作。
- 在下面的例子中,我们为日期对象设置了一个特定的日期 (2010 年 1 月 14 日):
- var myDate=new Date();
- myDate.setFullYear(2010,0,14);
- 在下面的例子中,我们将日期对象设置为 5 天后的日期:
- var myDate=new Date();
- myDate.setDate(myDate.getDate()+5);
- 注意: 如果增加天数会改变月份或者年份,那么日期对象会自动完成这种转换。
两个日期比较
- 日期对象也可用于比较两个日期。
下面的代码将当前日期与 2100 年 1 月 14 日做了比较:
var x=new Date(); x.setFullYear(2100,0,14); var today = new Date(); if (x>today) { alert("今天是2100年1月14日之前"); } else { alert("今天是2100年1月14日之后"); }
字符串属性和方法
属性:
| 属性 | 描述 | |------|-----| | constructor | 返回对创建此对象的 Date 函数的引用 | | prototype | 使您有能力向对象添加属性和方法 |
方法:
| 方法 | 描述 | |-----|------| | getDate() | 从 Date 对象返回一个月中的某一天 (1 ~ 31) | | getDay() | 从 Date 对象返回一周中的某一天 (0 ~ 6) | | getFullYear() | 从 Date 对象以四位数字返回年份 | | getHours() | 返回 Date 对象的小时 (0 ~ 23) | | getMilliseconds() | 返回 Date 对象的毫秒(0 ~ 999) | | getMinutes() | 返回 Date 对象的分钟 (0 ~ 59) | | getMonth() | 从 Date 对象返回月份 (0 ~ 11) | | getSeconds() | 返回 Date 对象的秒数 (0 ~ 59) | | getTime() | 返回 1970 年 1 月 1 日至今的毫秒数 | | getTimezoneOffset() | 返回本地时间与格林威治标准时间 (GMT) 的分钟差 | | getUTCDate() | 根据世界时从 Date 对象返回月中的一天 (1 ~ 31) | | getUTCDay() | 根据世界时从 Date 对象返回周中的一天 (0 ~ 6) | | getUTCFullYear() | 根据世界时从 Date 对象返回四位数的年份 | | getUTCHours() | 根据世界时返回 Date 对象的小时 (0 ~ 23) | | getUTCMilliseconds() | 根据世界时返回 Date 对象的毫秒(0 ~ 999) | | getUTCMinutes() | 根据世界时返回 Date 对象的分钟 (0 ~ 59) | | getUTCMonth() | 根据世界时从 Date 对象返回月份 (0 ~ 11) | | getUTCSeconds() | 根据世界时返回 Date 对象的秒钟 (0 ~ 59) | | getYear() | 已废弃。 请使用 getFullYear() 方法代替 | | parse() | 返回1970年1月1日午夜到指定日期(字符串)的毫秒数 | | setDate() | 设置 Date 对象中月的某一天 (1 ~ 31) | | setFullYear() | 设置 Date 对象中的年份(四位数字) | | setHours() | 设置 Date 对象中的小时 (0 ~ 23) | | setMilliseconds() | 设置 Date 对象中的毫秒 (0 ~ 999) | | setMinutes() | 设置 Date 对象中的分钟 (0 ~ 59) | | setMonth() | 设置 Date 对象中月份 (0 ~ 11) | | setSeconds() | 设置 Date 对象中的秒钟 (0 ~ 59) | | setTime() setTime() | 方法以毫秒设置 Date 对象 | | setUTCDate() | 根据世界时设置 Date 对象中月份的一天 (1 ~ 31) | | setUTCFullYear() | 根据世界时设置 Date 对象中的年份(四位数字) | | setUTCHours() | 根据世界时设置 Date 对象中的小时 (0 ~ 23) | | setUTCMilliseconds() | 根据世界时设置 Date 对象中的毫秒 (0 ~ 999) | | setUTCMinutes() | 根据世界时设置 Date 对象中的分钟 (0 ~ 59) | | setUTCMonth() | 根据世界时设置 Date 对象中的月份 (0 ~ 11) | | setUTCSeconds() | setUTCSeconds() 方法用于根据世界时 (UTC) 设置指定时间的秒字段 | | setYear() | 已废弃。请使用 setFullYear() 方法代替。 | toDateString() | 把 Date 对象的日期部分转换为字符串 | | toGMTString() | 已废弃。请使用 toUTCString() 方法代替 | | toISOString() | 使用 ISO 标准返回字符串的日期格式 | | toJSON() | 以 JSON 数据格式返回日期字符串 | | toLocaleDateString() | 根据本地时间格式,把 Date 对象的日期部分转换为字符串 | | toLocaleTimeString() | 根据本地时间格式,把 Date 对象的时间部分转换为字符串 | | toLocaleString() | 据本地时间格式,把 Date 对象转换为字符串 | | toString() | 把 Date 对象转换为字符串 | | toTimeString() | 把 Date 对象的时间部分转换为字符串 | | toUTCString() | 根据世界时,把 Date 对象转换为字符串 | | UTC() | 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数 | | valueOf() | 返回 Date 对象的原始值 |
Array对象
数组对象是使用单独的变量名来存储一系列的值。
- 数组可以用一个变量名存储所有的值,并且可以用变量名访问任何一个值。
- 数组中的每个元素都有自己的的ID,以便它可以很容易地被访问到。
创建一个数组
- 常规方式:
var myCars=new Array(); myCars[0]="Saab"; myCars[1]="Volvo"; myCars[2]="BMW";
- 简洁方式:
var myCars=new Array("Saab","Volvo","BMW");
- 字面:
var myCars=["Saab","Volvo","BMW"];
- 常规方式:
访问数组
通过指定数组名以及索引号码,你可以访问某个特定的元素。
在一个数组中你可以有不同的对象
所有的JavaScript变量都是对象。数组元素是对象。函数是对象。 因此,你可以在数组中有不同的变量类型。 你可以在一个数组中包含对象元素、函数、数组
数组方法和属性
属性:
| 属性 | 描述 | |------|-----| | constructor | 返回创建数组对象的原型函数 | | length | 设置或返回数组元素的个数 | | prototype | 允许你向数组对象添加属性或方法 |
方法:
| 方法 | 描述 | |-----|------| | concat() | 连接两个或更多的数组,并返回结果 | | copyWithin() | 从数组的指定位置拷贝元素到数组的另一个指定位置中 | | entries() | 返回数组的可迭代对象 | | every() | 检测数值元素的每个元素是否都符合条件 | | fill() | 使用一个固定值来填充数组 | | filter() | 检测数值元素,并返回符合条件所有元素的数组 | | find() | 返回符合传入测试(函数)条件的数组元素 | | findIndex() | 返回符合传入测试(函数)条件的数组元素索引 | | forEach() | 数组每个元素都执行一次回调函数 | | from() | 通过给定的对象中创建一个数组 | | includes() | 判断一个数组是否包含一个指定的值 | | indexOf() | 搜索数组中的元素,并返回它所在的位置 | | isArray() | 判断对象是否为数组 | | join() | 把数组的所有元素放入一个字符串 | | keys() | 返回数组的可迭代对象,包含原始数组的键(key) | | lastIndexOf() | 搜索数组中的元素,并返回它最后出现的位置 | | map() | 通过指定函数处理数组的每个元素,并返回处理后的数组 | | pop() | 删除数组的最后一个元素并返回删除的元素 | | push() | 向数组的末尾添加一个或更多元素,并返回新的长度 | | reduce() | 将数组元素计算为一个值(从左到右) | | reduceRight() | 将数组元素计算为一个值(从右到左) | | reverse() | 反转数组的元素顺序 | | shift() | 删除并返回数组的第一个元素 | | slice() | 选取数组的的一部分,并返回一个新数组 | | some() | 检测数组元素中是否有元素符合指定条件 | | sort() | 对数组的元素进行排序 | | splice() | 从数组中添加或删除元素 | | toString() | 把数组转换为字符串,并返回结果 | | unshift() | 向数组的开头添加一个或更多元素,并返回新的长度 | | valueOf() | 返回数组对象的原始值 |
Math对象
Math方法和属性
属性:
| 属性 | 描述 | |------|-----| | E | 返回算术常量 e,即自然对数的底数(约等于2.718) | | LN2 | 返回 2 的自然对数(约等于0.693) | | LN10 | 返回 10 的自然对数(约等于2.302) | | LOG2E | 返回以 2 为底的 e 的对数(约等于 1.4426950408889634) | | LOG10E | 返回以 10 为底的 e 的对数(约等于0.434) | | PI | 返回圆周率(约等于3.14159) | | SQRT1_2 | 返回 2 的平方根的倒数(约等于 0.707) | | SQRT2 | 返回 2 的平方根(约等于 1.414) |
方法:
| 方法 | 描述 | |-----|------| | abs(x) | 返回 x 的绝对值 | | acos(x) | 返回 x 的反余弦值 | | asin(x) | 返回 x 的反正弦值 | | atan(x) | 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值 | | atan2(y,x) | 返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间) | | ceil(x) | 对数进行上舍入 | | cos(x) | 返回数的余弦 | | exp(x) | 返回 Ex 的指数 | | floor(x) | 对 x 进行下舍入 | | log(x) | 返回数的自然对数(底为e) | | max(x,y,z,...,n) | 返回 x,y,z,...,n 中的最高值 | | min(x,y,z,...,n) | 返回 x,y,z,...,n中的最低值 | | pow(x,y) | 返回 x 的 y 次幂 | | random() | 返回 0 ~ 1 之间的随机数 | | round(x) | 四舍五入 | | sin(x) | 返回数的正弦 | | sqrt(x) | 返回数的平方根 | | tan(x) | 返回角的正切 |
DOM对象
HTML DOM 节点
在 HTML DOM (Document Object Model) 中 , 每一个元素都是 节点:
- 文档是一个文档节点。
- 所有的HTML元素都是元素节点。
- 所有 HTML 属性都是属性节点。
- 文本插入到 HTML 元素是文本节点。are text nodes。
- 注释是注释节点。
Document 对象
- 当浏览器载入 HTML 文档, 它就会成为 Document 对象。
- Document 对象是 HTML 文档的根节点。
- Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问。
提示:Document 对象是 Window 对象的一部分,可通过 window.document 属性对其进行访问。
Document 对象属性和方法
属性和方法
| 属性 / 方法 | 描述 | |------|------------| | document.activeElement | 返回当前获取焦点元素 | | document.addEventListener() | 向文档添加句柄 | | document.adoptNode(node) | 从另外一个文档返回 adapded 节点到当前文档 | | document.anchors | 返回对文档中所有 Anchor 对象的引用 | | document.applets | 返回对文档中所有 Applet 对象的引用。注意: HTML5 已不支持
警告 !!! 在 W3C DOM核心,文档对象 继承节点对象的所有属性和方法。
很多属性和方法在文档中是没有意义的。
HTML 文档对象可以避免使用这些节点对象和属性:
| 属性 / 方法 | 避免的原因 | |-------|----------------| | document.attributes | 文档没有该属性 | | document.hasAttributes() | 文档没有该属性 | | document.nextSibling | 文档没有下一节点 | | document.nodeName | 这个通常是 #document | | document.nodeType | 这个通常是 9(DOCUMENT_NODE) | | document.nodeValue | 文档没有一个节点值 | | document.ownerDocument | 文档没有主文档 | | document.ownerElement | 文档没有自己的节点 | | document.parentNode | 文档没有父节点 | | document.previousSibling | 文档没有兄弟节点 | | document.textContent | 文档没有文本节点 |
元素对象
- 在 HTML DOM 中, 元素对象代表着一个 HTML 元素。
- 元素对象 的 子节点可以是, 可以是元素节点,文本节点,注释节点。
- NodeList 对象 代表了节点列表,类似于 HTML元素的子节点集合。
属性和方法
| 属性 / 方法 | 描述 | |------|------------| | element.accessKey | 设置或返回accesskey一个元素 | | element.addEventListener() | 向指定元素添加事件句柄 | | element.appendChild() | 为元素添加一个新的子元素 | | element.attributes | 返回一个元素的属性数组 | | element.childNodes | 返回元素的一个子节点的数组 | | element.children | 返回元素的子元素的集合 | | element.classList | 返回元素的类名,作为 DOMTokenList 对象。 | | element.className | 设置或返回元素的class属性 | | element.clientHeight | 在页面上返回内容的可视高度(不包括边框,边距或滚动条) | | element.clientWidth | 在页面上返回内容的可视宽度(不包括边框,边距或滚动条) | | element.cloneNode() | 克隆某个元素 | | element.compareDocumentPosition() | 比较两个元素的文档位置。 | | element.contentEditable | 设置或返回元素的内容是否可编辑 | | element.dir | 设置或返回一个元素中的文本方向 | | element.firstChild | 返回元素的第一个子节点 | | element.focus() | 设置文档或元素获取焦点 | | element.getAttribute() | 返回指定元素的属性值 | | element.getAttributeNode() | 返回指定属性节点 | | element.getElementsByTagName() | 返回指定标签名的所有子元素集合。 | | element. getElementsByClassName() | 返回文档中所有指定类名的元素集合,作为 NodeList 对象。 | | element.getFeature() | 返回指定特征的执行APIs对象。 | | element.getUserData() | 返回一个元素中关联键值的对象。 | | element.hasAttribute() | 如果元素中存在指定的属性返回 true,否则返回false。 | | element.hasAttributes() | 如果元素有任何属性返回true,否则返回false。 | | element.hasChildNodes() | 返回一个元素是否具有任何子元素 | | element.hasFocus() | 返回布尔值,检测文档或元素是否获取焦点 | | element.id | 设置或者返回元素的 id。 | | element.innerHTML | 设置或者返回元素的内容。 | | element.insertBefore() | 现有的子元素之前插入一个新的子元素 | | element.isContentEditable | 如果元素内容可编辑返回 true,否则返回false | | element.isDefaultNamespace() | 如果指定了namespaceURI 返回 true,否则返回 false。 | | element.isEqualNode() | 检查两个元素是否相等 | | element.isSameNode() | 检查两个元素所有有相同节点。 | | element.isSupported() | 如果在元素中支持指定特征返回 true。 | | element.lang | 设置或者返回一个元素的语言。 | | element.lastChild | 返回的最后一个子元素 | | element.namespaceURI | 返回命名空间的 URI。 | | element.nextSibling | 返回该元素紧跟的一个节点 | | element.nextElementSibling | 返回指定元素之后的下一个兄弟元素(相同节点树层中的下一个元素节点)。 | | element.nodeName | 返回元素的标记名(大写) | | element.nodeType | 返回元素的节点类型 | | element.nodeValue | 返回元素的节点值 | | element.normalize() | 使得此成为一个"normal"的形式,其中只有结构(如元素,注释,处理指令,CDATA节和实体引用)隔开Text节点,即元素(包括属性)下面的所有文本节点,既没有相邻的文本节点也没有空的文本节点 | | element.offsetHeight | 返回任何一个元素的高度包括边框和填充,但不是边距 | | element.offsetWidth | 返回元素的宽度,包括边框和填充,但不是边距 | | element.offsetLeft | 返回当前元素的相对水平偏移位置的偏移容器 | | element.offsetParent | 返回元素的偏移容器 | | element.offsetTop | 返回当前元素的相对垂直偏移位置的偏移容器 | | element.ownerDocument | 返回元素的根元素(文档对象) | | element.parentNode | 返回元素的父节点 | | element.previousSibling | 返回某个元素紧接之前元素 | | element.previousElementSibling | 返回指定元素的前一个兄弟元素(相同节点树层中的前一个元素节点)。 | | element.querySelector() | 返回匹配指定 CSS 选择器元素的第一个子元素 | | document.querySelectorAll() | 返回匹配指定 CSS 选择器元素的所有子元素节点列表 | | element.removeAttribute() | 从元素中删除指定的属性 | | element.removeAttributeNode() | 删除指定属性节点并返回移除后的节点。 | | element.removeChild() | 删除一个子元素 | | element.removeEventListener() | 移除由 addEventListener() 方法添加的事件句柄 | | element.replaceChild() | 替换一个子元素 | | element.scrollHeight | 返回整个元素的高度(包括带滚动条的隐蔽的地方) | | element.scrollLeft | 返回当前视图中的实际元素的左边缘和左边缘之间的距离 | | element.scrollTop | 返回当前视图中的实际元素的顶部边缘和顶部边缘之间的距离 | | element.scrollWidth | 返回元素的整个宽度(包括带滚动条的隐蔽的地方) | | element.setAttribute() | 设置或者改变指定属性并指定值。 | | element.setAttributeNode() | 设置或者改变指定属性节点。 | | element.setIdAttribute() | | | element.setIdAttributeNode() | | | element.setUserData() | 在元素中为指定键值关联对象。 | | element.style | 设置或返回元素的样式属性 | | element.tabIndex | 设置或返回元素的标签顺序。 | | element.tagName | 作为一个字符串返回某个元素的标记名(大写) | | element.textContent | 设置或返回一个节点和它的文本内容 | | element.title | 设置或返回元素的title属性 | | element.toString() | 一个元素转换成字符串 | | nodelist.item() | 返回某个元素基于文档树的索引 | | nodelist.length | 返回节点列表的节点数目。 |
Attr(属性) 对象
- 在 HTML DOM 中, Attr 对象 代表一个 HTML 属性。
HTML属性总是属于HTML元素。
NamedNodeMap 对象
- 在 HTML DOM 中, the NamedNodeMap 对象 表示一个无顺序的节点列表。
- 我们可通过节点名称来访问 NamedNodeMap 中的节点。
属性和方法
| 属性 / 方法 | 描述 | |------|------------| | attr.isId | 如果属性是 ID 类型,则 isId 属性返回 true,否则返回 false。 | | attr.name | 返回属性名称 | | attr.value | 设置或者返回属性值 | | attr.specified | 如果属性被指定返回 true ,否则返回 false | | nodemap.getNamedItem() | 从节点列表中返回的指定属性节点。 | | nodemap.item() | 返回节点列表中处于指定索引号的节点。 | | nodemap.length | 返回节点列表的节点数目。 | | nodemap.removeNamedItem() | 删除指定属性节点 | | nodemap.setNamedItem() | 设置指定属性节点(通过名称) |
DOM 4 警告 !!!
- 在 W3C DOM 内核中, Attr (属性) 对象继承节点对象的所有属性和方法 。
- 在 DOM 4 中, Attr (属性) 对象不再从节点对象中继承。
从长远的代码质量来考虑,在属性对象中你需要避免使用节点对象属性和方法:
| 属性 / 方法 | 避免原因 | |------|------------| | attr.appendChild() | 属性没有子节点 | | attr.attributes | 属性没有属性 | | attr.baseURI | 使用 document.baseURI 替代 | | attr.childNodes | 属性没有子节点 | | attr.cloneNode() | 使用 attr.value 替代 | | attr.firstChild | 属性没有子节点 | | attr.hasAttributes() | 属性没有属性 | | attr.hasChildNodes | 属性没有子节点 | | attr.insertBefore() | 属性没有子节点 | | attr.isEqualNode() | 没有意义 | | attr.isSameNode() | 没有意义 | | attr.isSupported() | 通常为 true | | attr.lastChild | 属性没有子节点 | | attr.nextSibling | 属性没有兄弟节点 | | attr.nodeName | 使用 attr.name 替代 | | attr.nodeType | 通常为 2 (ATTRIBUTE-NODE) | | attr.nodeValue | 使用 attr.value 替代 | | attr.normalize() | 属性没有规范 | | attr.ownerDocument | 通常为你的 HTML 文档 | | attr.ownerElement | 你用来访问属性的 HTML 元素 | | attr.parentNode | 你用来访问属性的 HTML 元素 | | attr.previousSibling | 属性没有兄弟节点 | | attr.removeChild | 属性没有子节点 | | attr.replaceChild | 属性没有子节点 | | attr.textContent | 使用 attr.value 替代 |
Console 对象
Console 对象提供了访问浏览器调试模式的信息到控制台。
方法 | 描述 |
---|---|
assert() | 如果断言为 false,则在信息到控制台输出错误信息。 |
clear() | 清除控制台上的信息。 |
count() | 记录 count() 调用次数,一般用于计数。 |
error() | 输出错误信息到控制台 |
group() | 在控制台创建一个信息分组。 一个完整的信息分组以 console.group() 开始,console.groupEnd() 结束 |
groupCollapsed() | 在控制台创建一个信息分组。 类似 console.group() ,但它默认是折叠的。 |
groupEnd() | 设置当前信息分组结束 |
info() | 控制台输出一条信息 |
log() | 控制台输出一条信息 |
table() | 以表格形式显示数据 |
time() | 计时器,开始计时间,与 timeEnd() 联合使用,用于算出一个操作所花费的准确时间。 |
timeEnd() | 计时结束 |
trace() | 显示当前执行的代码在堆栈中的调用路径。 |
warn() | 输出警告信息,信息最前面加一个黄色三角,表示警告 |
CSS 样式声明对象(CSSStyleDeclaration)
CSSStyleDeclaration 对象
CSSStyleDeclaration 对象表示一个 CSS 属性-值(property-value)对的集合。
CSSStyleDeclaration 对象属性
| 属性 | 描述 | |------|------------| | cssText | 设置或返回样式声明文本,cssText 对应的是 HTML 元素的 style 属性。 | | length | 返回样式中包含多少条声明。 | | parentRule | 返回包含当前规则的规则。 |
CSSStyleDeclaration 对象方法
| 属性 | 描述 | |------|------------| | getPropertyPriority() | 返回指定的 CSS 属性是否设置了 "important!" 属性。 | | getPropertyValue() | 返回指定的 CSS 属性值。 | | item() | 通过索引方式返回 CSS 声明中的 CSS 属性名。 | | removeProperty() | 移除 CSS 声明中的 CSS 属性。 | | setProperty() | 在 CSS 声明块中新建或者修改 CSS 属性。 |
DOM 事件
DOM: 指明使用的 DOM 属性级别。
鼠标事件
属性 | 描述 | DOM |
---|---|---|
onclick | 当用户点击某个对象时调用的事件句柄。 | 2 |
oncontextmenu | 在用户点击鼠标右键打开上下文菜单时触发 | |
ondblclick | 当用户双击某个对象时调用的事件句柄。 | 2 |
onmousedown | 鼠标按钮被按下。 | 2 |
onmouseenter | 当鼠标指针移动到元素上时触发。 | 2 |
onmouseleave | 当鼠标指针移出元素时触发 | 2 |
onmousemove | 鼠标被移动。 | 2 |
onmouseover | 鼠标移到某元素之上。 | 2 |
onmouseout | 鼠标从某元素移开。 | 2 |
onmouseup | 鼠标按键被松开。 | 2 |
键盘事件
属性 | 描述 | DOM |
---|---|---|
onkeydown | 某个键盘按键被按下。 | 2 |
onkeypress | 某个键盘按键被按下并松开。 | 2 |
onkeyup | 某个键盘按键被松开。 | 2 |
框架/对象(Frame/Object)事件
属性 | 描述 | DOM |
---|---|---|
onabort | 图像的加载被中断。 ( <object> ) |
2 |
onbeforeunload | 该事件在即将离开页面(刷新或关闭)时触发 | 2 |
onerror | 在加载文档或图像时发生错误。 ( <object> , <body> 和 <frameset> ) |
|
onhashchange | 该事件在当前 URL 的锚部分发生修改时触发。 | |
onload | 一张页面或一幅图像完成加载。 | 2 |
onpageshow | 该事件在用户访问页面时触发 | |
onpagehide | 该事件在用户离开当前网页跳转到另外一个页面时触发 | |
onresize | 窗口或框架被重新调整大小。 | 2 |
onscroll | 当文档被滚动时发生的事件。 | 2 |
onunload | 用户退出页面。 ( <body> 和 <frameset> ) |
2 |
表单事件
属性 | 描述 | DOM |
---|---|---|
onblur | 元素失去焦点时触发 | 2 |
onchange | 该事件在表单元素的内容改变时触发( <input> , <keygen> , <select> , 和 <textarea> ) |
2 |
onfocus | 元素获取焦点时触发 | 2 |
onfocusin | 元素即将获取焦点时触发 | 2 |
onfocusout | 元素即将失去焦点时触发 | 2 |
oninput | 元素获取用户输入时触发 | 3 |
onreset | 表单重置时触发 | 2 |
onsearch | 用户向搜索域输入文本时触发 ( <input="search"> ) |
|
onselect | 用户选取文本时触发 ( <input> 和 <textarea> ) |
2 |
onsubmit | 表单提交时触发 | 2 |
剪贴板事件
属性 | 描述 | DOM |
---|---|---|
oncopy | 该事件在用户拷贝元素内容时触发 | |
oncut | 该事件在用户剪切元素内容时触发 | |
onpaste | 该事件在用户粘贴元素内容时触发 |
打印事件
属性 | 描述 | DOM |
---|---|---|
onafterprint | 该事件在页面已经开始打印,或者打印窗口已经关闭时触发 | |
onbeforeprint | 该事件在页面即将开始打印时触发 |
拖动事件
事件 | 描述 | DOM |
---|---|---|
ondrag | 该事件在元素正在拖动时触发 | |
ondragend | 该事件在用户完成元素的拖动时触发 | |
ondragenter | 该事件在拖动的元素进入放置目标时触发 | |
ondragleave | 该事件在拖动元素离开放置目标时触发 | |
ondragover | 该事件在拖动元素在放置目标上时触发 | |
ondragstart | 该事件在用户开始拖动元素时触发 | |
ondrop | 该事件在拖动元素放置在目标区域时触发 |
多媒体(Media)事件
事件 | 描述 | DOM |
---|---|---|
onabort | 事件在视频/音频(audio/video)终止加载时触发。 | |
oncanplay | 事件在用户可以开始播放视频/音频(audio/video)时触发。 | |
oncanplaythrough | 事件在视频/音频(audio/video)可以正常播放且无需停顿和缓冲时触发。 | |
ondurationchange | 事件在视频/音频(audio/video)的时长发生变化时触发。 | |
onemptied | 当期播放列表为空时触发 | |
onended | 事件在视频/音频(audio/video)播放结束时触发。 | |
onerror | 事件在视频/音频(audio/video)数据加载期间发生错误时触发。 | |
onloadeddata | 事件在浏览器加载视频/音频(audio/video)当前帧时触发触发。 | |
onloadedmetadata | 事件在指定视频/音频(audio/video)的元数据加载后触发。 | |
onloadstart | 事件在浏览器开始寻找指定视频/音频(audio/video)触发。 | |
onpause | 事件在视频/音频(audio/video)暂停时触发。 | |
onplay | 事件在视频/音频(audio/video)开始播放时触发。 | |
onplaying | 事件在视频/音频(audio/video)暂停或者在缓冲后准备重新开始播放时触发。 | |
onprogress | 事件在浏览器下载指定的视频/音频(audio/video)时触发。 | |
onratechange | 事件在视频/音频(audio/video)的播放速度发送改变时触发。 | |
onseeked | 事件在用户重新定位视频/音频(audio/video)的播放位置后触发。 | |
onseeking | 事件在用户开始重新定位视频/音频(audio/video)时触发。 | |
onstalled | 事件在浏览器获取媒体数据,但媒体数据不可用时触发。 | |
onsuspend | 事件在浏览器读取媒体数据中止时触发。 | |
ontimeupdate | 事件在当前的播放位置发送改变时触发。 | |
onvolumechange | 事件在音量发生改变时触发。 | |
onwaiting | 事件在视频由于要播放下一帧而需要缓冲时触发。 |
动画事件
事件 | 描述 | DOM |
---|---|---|
animationend | 该事件在 CSS 动画结束播放时触发 | |
animationiteration | 该事件在 CSS 动画重复播放时触发 | |
animationstart | 该事件在 CSS 动画开始播放时触发 |
过渡事件
事件 | 描述 | DOM |
---|---|---|
transitionend | 该事件在 CSS 完成过渡后触发。 |
其他事件
事件 | 描述 | DOM |
---|---|---|
onmessage | 该事件通过或者从对象(WebSocket, Web Worker, Event Source 或者子 frame 或父窗口)接收到消息时触发 | |
onmousewheel | 已废弃。 使用 onwheel 事件替代 | |
ononline | 该事件在浏览器开始在线工作时触发。 | |
onoffline | 该事件在浏览器开始离线工作时触发。 | |
onpopstate | 该事件在窗口的浏览历史(history 对象)发生改变时触发。 | |
onshow | 该事件当 | |
onstorage | 该事件在 Web Storage(HTML 5 Web 存储)更新时触发 | |
ontoggle | 该事件在用户打开或关闭 元素时触发 |
|
onwheel | 该事件在鼠标滚轮在元素上下滚动时触发 |
事件对象
常量
| 静态变量 | 描述 | DOM | |------|------|------| | CAPTURING-PHASE | 当前事件阶段为捕获阶段(1) | 1 | | AT-TARGET | 当前事件是目标阶段,在评估目标事件(1) | 2 | | BUBBLING-PHASE | 当前的事件为冒泡阶段 (3) | 3 |
属性
| 属性 | 描述 | DOM | |------|------|------| | bubbles | 返回布尔值,指示事件是否是起泡事件类型。 | 2 | | cancelable | 返回布尔值,指示事件是否可拥可取消的默认动作。 | 2 | | currentTarget | 返回其事件监听器触发该事件的元素。 | 2 | | eventPhase | 返回事件传播的当前阶段。 | 2 | | target | 返回触发此事件的元素(事件的目标节点)。 | 2 | | timeStamp | 返回事件生成的日期和时间。 | 2 | | type | 返回当前 Event 对象表示的事件的名称。 | 2 |
方法
| 方法 | 描述 | DOM | |------|------|------| | initEvent() | 初始化新创建的 Event 对象的属性。 | 2 | | preventDefault() | 通知浏览器不要执行与事件关联的默认动作。 | 2 | | stopPropagation() | 不再派发事件。 | 2 |
目标事件对象
方法
| 方法 | 描述 | DOM | |------|------|------| | addEventListener() | 允许在目标事件中注册监听事件(IE8 = attachEvent()) | 2 | | dispatchEvent() | 允许发送事件到监听器上 (IE8 = fireEvent()) | 2 | | removeEventListener() | 运行一次注册在事件目标上的监听事件(IE8 = detachEvent()) | 2 |
事件监听对象
方法
| 方法 | 描述 | DOM | |------|------|------| | handleEvent() | 把任意对象注册为事件处理程序 | 2 |
文档事件对象
方法
| 方法 | 描述 | DOM | |------|------|------| | createEvent() | | 2 |
鼠标/键盘事件对象
属性
| 属性 | 描述 | DOM | |------|------|------| | altKey | 返回当事件被触发时,"ALT" 是否被按下。 | 2 | | button | 返回当事件被触发时,哪个鼠标按钮被点击。 | 2 | | clientX | 返回当事件被触发时,鼠标指针的水平坐标。 | 2 | | clientY | 返回当事件被触发时,鼠标指针的垂直坐标。 | 2 | | ctrlKey | 返回当事件被触发时,"CTRL" 键是否被按下。 | 2 | | Location | 返回按键在设备上的位置 | 3 | | charCode | 返回onkeypress事件触发键值的字母代码。 | 2 | | key | 在按下按键时返回按键的标识符。 | 3 | | keyCode | 返回onkeypress事件触发的键的值的字符代码,或者 onkeydown 或 onkeyup 事件的键的代码。 | 2 | | which | 返回onkeypress事件触发的键的值的字符代码,或者 onkeydown 或 onkeyup 事件的键的代码。 | 2 | | metaKey | 返回当事件被触发时,"meta" 键是否被按下。 | 2 | | relatedTarget | 返回与事件的目标节点相关的节点。 | 2 | | screenX | 返回当某个事件被触发时,鼠标指针的水平坐标。 | 2 | | screenY | 返回当某个事件被触发时,鼠标指针的垂直坐标。 | 2 | | shiftKey | 返回当事件被触发时,"SHIFT" 键是否被按下。 | 2 |
方法
| 方法 | 描述 | DOM | |------|------|------| | initMouseEvent() | 初始化鼠标事件对象的值 | 2 | | initKeyboardEvent() | 初始化键盘事件对象的值 | 3 |
浏览器对象
Window对象
Window 对象表示浏览器中打开的窗口。
如果文档包含框架(<frame>
或 <iframe>
标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。
注意: 没有应用于 window 对象的公开标准,不过所有浏览器都支持该对象。
Window 对象属性
| 属性 | 描述 | |------|------------| | closed | 返回窗口是否已被关闭。 | | defaultStatus | 设置或返回窗口状态栏中的默认文本。 | | document | 对 Document 对象的只读引用。(请参阅对象) | | frames | 返回窗口中所有命名的框架。该集合是 Window 对象的数组,每个 Window 对象在窗口中含有一个框架。 | | history | 对 History 对象的只读引用。请参数 History 对象。 | | innerHeight | 返回窗口的文档显示区的高度。 | | innerWidth | 返回窗口的文档显示区的宽度。 | | localStorage | 在浏览器中存储 key/value 对。没有过期时间。 | | length | 设置或返回窗口中的框架数量。 | | location | 用于窗口或框架的 Location 对象。请参阅 Location 对象。 | | name | 设置或返回窗口的名称。 | | navigator | 对 Navigator 对象的只读引用。请参数 Navigator 对象。 | | opener | 返回对创建此窗口的窗口的引用。 | | outerHeight | 返回窗口的外部高度,包含工具条与滚动条。 | | outerWidth | 返回窗口的外部宽度,包含工具条与滚动条。 | | pageXOffset | 设置或返回当前页面相对于窗口显示区左上角的 X 位置。 | | pageYOffset | 设置或返回当前页面相对于窗口显示区左上角的 Y 位置。 | | parent | 返回父窗口。 | | screen | 对 Screen 对象的只读引用。请参数 Screen 对象。 | | screenLeft | 返回相对于屏幕窗口的x坐标 | | screenTop | 返回相对于屏幕窗口的y坐标 | | screenX | 返回相对于屏幕窗口的x坐标 | | sessionStorage | 在浏览器中存储 key/value 对。 在关闭窗口或标签页之后将会删除这些数据。 | | screenY | 返回相对于屏幕窗口的y坐标 | | self | 返回对当前窗口的引用。等价于 Window 属性。 | | status | 设置窗口状态栏的文本。 | | top | 返回最顶层的父窗口。 |
Window 对象方法
| 方法 | 描述 | |------|------------| | alert() | 显示带有一段消息和一个确认按钮的警告框。 | | atob() | 解码一个 base-64 编码的字符串。 | | btoa() | 创建一个 base-64 编码的字符串。 | | blur() | 把键盘焦点从顶层窗口移开。 | | clearInterval() | 取消由 setInterval() 设置的 timeout。 | | clearTimeout() | 取消由 setTimeout() 方法设置的 timeout。 | | close() | 关闭浏览器窗口。 | | confirm() | 显示带有一段消息以及确认按钮和取消按钮的对话框。 | | createPopup() | 创建一个 pop-up 窗口。 | | focus() | 把键盘焦点给予一个窗口。 | | getSelection() | 返回一个 Selection 对象,表示用户选择的文本范围或光标的当前位置。 | | getComputedStyle() | 获取指定元素的 CSS 样式。 | | matchMedia() | 该方法用来检查 media query 语句,它返回一个 MediaQueryList对象。 | | moveBy() | 可相对窗口的当前坐标把它移动指定的像素。 | | moveTo() | 把窗口的左上角移动到一个指定的坐标。 | | open() | 打开一个新的浏览器窗口或查找一个已命名的窗口。 | | print() | 打印当前窗口的内容。 | | prompt() | 显示可提示用户输入的对话框。 | | resizeBy() | 按照指定的像素调整窗口的大小。 | | resizeTo() | 把窗口的大小调整到指定的宽度和高度。 | | scroll() | 已废弃。 该方法已经使用了 scrollTo() 方法来替代。 | | scrollBy() | 按照指定的像素值来滚动内容。 | | scrollTo() | 把内容滚动到指定的坐标。 | | setInterval() | 按照指定的周期(以毫秒计)来调用函数或计算表达式。 | | setTimeout() | 在指定的毫秒数后调用函数或计算表达式。 | | stop() | 停止页面载入。 |
计时器
计时事件 通过使用JavaScript,我们有能力做到在一个设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行,我们称之为计时事件
计时方法:
- setInterval():间隔指定的毫秒数不停地执行指定的代码
- clearInterval():用于停止setInterval()方法执行的函数代码
- setTimeout():暂停指定的毫秒数后执行指定的代码
- clearTimeout():用于停止执行setTimeout()方法的函数代码
- setInterval():间隔指定的毫秒数不停地执行指定的代码
History 对象
Histor对象包含用户(在浏览器窗口中)访问过的 URL。
History 对象是 window 对象的一部分,可通过 window.history 属性对其进行访问。
注意: 没有应用于History对象的公开标准,不过所有浏览器都支持该对象。
History 对象属性
| 属性 | 描述 | |------|------------| | length | 返回历史列表中的网址数 |
History 对象方法
| 方法 | 描述 | |------|------------| | back() | 加载 history 列表中的前一个 URL | | forward() | 加载 history 列表中的下一个 URL | | go() | 加载 history 列表中的某个具体页面 |
Location 对象
Location 对象包含有关当前 URL 的信息。
Location 对象是 window 对象的一部分,可通过 window.Location 属性对其进行访问。
注意: 没有应用于Location对象的公开标准,不过所有浏览器都支持该对象。
Location 对象属性
| 属性 | 描述 | |------|------------| | hash | 返回一个URL的锚部分 | | host | 返回一个URL的主机名和端口 | | hostname | 返回URL的主机名 | | href | 返回完整的URL | | pathname | 返回的URL路径名。 | | port | 返回一个URL服务器使用的端口号 | | protocol | 返回一个URL协议 | | search | 返回一个URL的查询部分 |
Location 对象方法
| 方法 | 描述 | |------|------------| | assign() | 载入一个新的文档 | | reload() | 重新载入当前文档 | | replace() | 用新的文档替换当前文档 |
Screen 对象
Screen 对象包含有关客户端显示屏幕的信息。
注意: 没有应用于 screen 对象的公开标准,不过所有浏览器都支持该对象。
Screen 对象属性
| 属性 | 描述 | |------|------------| | availHeight | 返回屏幕的高度(不包括Windows任务栏) | | availWidth | 返回屏幕的宽度(不包括Windows任务栏) | | colorDepth | 返回目标设备或缓冲器上的调色板的比特深度 | | height | 返回屏幕的总高度 | | pixelDepth | 返回屏幕的颜色分辨率(每象素的位数) | | width | 返回屏幕的总宽度 |