JavaScript 的组成部分:
ECMAScript : 核心; ECMAScript是JavaScript的规格,JavaScript是ECMAScript的一种实现 .
BOM : 浏览器对象模型; 它定义了JavaScript可以进行操作的浏览器的各个功能部件的接口, BOM 的核心对象是
window, 它的作用使JavaScript有能力与浏览器’对话.
DOM : 文档对象模型; DOM是一个使程序和脚本有能力动态地访问和更新文档的内容、结构以及样式的平台和语言中立的接口, 它是W3C 的标准[所有浏览器公共遵守的标准] .
1.BOM 浏览器对象模型
(1) window对象
window对象: 代表的是浏览器中打开的窗口, 在js中我们使用window来引用window对象, window对象是最顶层的一个对象, 它的属性和方法的调用都可以省略window.
序号 | 属性 | 功能 |
---|
1 | innerHeight / innerWidth | 获取浏览器窗口的内部高度 / 宽度(包括滚动条) |
2 | screen.availWidth / availHeight | 获取可用的屏幕宽度 / 高度 |
3 | prompt() | 弹出输入框 |
4 | alert() | 弹框警告框 |
5 | confirm() | 弹出确认与取消提示框(返回的布尔值true和false) |
6 | open(‘url’) | 打开新窗口 |
7 | close() | 关闭浏览器窗口 |
8 | print() | 打印当前窗口的内容(调出打印机) |
9 | moveTo(, ) | 移动当前窗口 |
10 | resizeTo(, ) | 调整当前窗口的尺寸 |
(2) location对象
location对象: 代表的是URL(统一资源定位符, 通常所说的网址); 使用location. 来调用属性
序号 | 属性 | 方法 |
---|
1 | location.hostname | 返回 web 主机的域名 |
2 | location.pathname | 返回当前页面的路径和文件名 |
3 | location.port | 返回 web 主机的端口 (80 或 443) |
4 | location.protocol | 返回所使用的 web 协议(http:// 或 https://) |
5 | location.href | 返回当前页面的URL |
6 | location.assign(‘url’) | 加载新的文档网页 |
7 | location.reload() | 重新加载, 刷新页面 |
(3) history对象
window.history: 对象返回浏览器的历史记录列表; 使用 history. 来调用属性
序号 | 属性 | 功能 |
---|
1 | history.forward() | 前进 |
2 | history.back() | 后退 |
3 | go(number) | +前进 / -后退 |
(4) navigator对象
navigator对象: 包含有关浏览器的信息
序号 | 属性 | 功能 |
---|
1 | navigator.appCodeName | 浏览器代号 |
2 | navigator.appName | 浏览器名称 |
3 | navigator.appVersion | 浏览器版本 |
4 | navigator.cookieEnabled | 启用Cookies |
(5)计时器 (计时事件)
计时事件: 我们通过使用JavaScript能做到在一个设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行.
序号 | 属性 | 功能 |
---|
1 | setInterval (function() {) },2000); | 间隔指定的毫秒数不停地执行指定的代码(周期执行) |
2 | clearInterval() | 用于停止 setInterval() 方法执行的函数代码。 |
3 | setTimeout (function(){)}, 2000); | 在指定的毫秒数后执行指定代码(执行一次) |
4 | clearTimeout() | 用于停止执行setTimeout()方法的函数代码 |
2.DOM 文档对象模型
使用DOM模型能够使用JS操作文档内容进行 添加, 删除, 修改, 查询, 复制, 等.
(1)获取元素节点
序号 | 属性 | 功能 |
---|
1 | document. getElementById() / document.querySelector | 通过id查找元素, 返回带有指定id的元素对象(拿单个元素) |
2 | document. getElementsByTagName() / getElementsByName | 通过标签名查找元素, 返回指定标签的所有元素的集合(使用lenght获取元素个数) |
3 | document. getElementsByClassName() / document. querySelectorAll | 通过类名查找元素, 返回指定类名的所有元素的集合(使用lenght获取元素个数) |
(2) 添加节点
序号 | 属性 | 功能 |
---|
1 | var 变量名 = document.createElement(‘li’) | 创建元素节点 |
2 | var 变量名 = document.createTextNode(‘hello’) | 创建文本节点 |
3 | ul.appendChild(li) | 添加节点(添加到内部末尾) |
4 | ul. insertBefore(li, li[0]) | 插入节点(添加到内部之前) |
(3) 删除节点
序号 | 属性 | 功能 |
---|
1 | 父元素.removeChild(删除的节点对象) | 删除指定的节点 |
2 | 元素. removeAttribute(属性名) | 删除指定的属性 |
(4) 修改元素内容及属性
序号 | 属性 | 功能 |
---|
1 | 元素. innerHTML | 获取 / 修改内部的HTML文本, 会渲染标签 |
2 | 元素. innerText / textContent | 获取 / 修改内部的纯文本 |
3 | 元素. setAttribute(属性名, 属性值) | 修改元素的的属性, 设置新属性 |
4 | 元素. getAttribute(属性名) | 通过元素名获取属性的值 |
5 | 元素. 属性名 = 属性值 | 直接修改属性值 |
6 | 元素. style. 属性名 = 属性值 | 修改CSS的属性 |
(5) 节点查找(层次)
序号 | 属性 | 功能 |
---|
1 | parentNode | 查找某节点的父节点 |
2 | childNodes | 查找所有孩子节点 |
3 | children | 查找被选元素的所有直接子元素 |
4 | firstChild | 查找被选节点的第一个节点 |
5 | lastChild | 查找被选节点的最后一个节点 |
6 | previousSibling | 查找被选节点的上一个兄弟节点 |
7 | nextSibling | 查找备选节点的后一个兄弟节点 |
(6) 复制节点
序号 | 属性 | 功能 |
---|
1 | var copy = node. cloneNode(true / false) | 参数表示是否克隆后代, 默认为false, 即不克隆后代 |
(7) 事件对象
事件驱动模型 : 事件(动作) –> 事件类型(动作类型) –> 事件源(事件发生的地方) –> 事件处理程序(事件响应程序 - 函
数) –> 事件监听器(监听事件的发生 - 浏览器).
序号 | 属性 | 功能 |
---|
1 | onclick | 事件在元素被点击时发生(元素被点击的整个过程) |
2 | onload | 事件在页面或图像加载完成后立即发生 |
3 | onunload | 事件在用户退出页面时发生 |
4 | onchange | 事件会在域的内容改变时发生 |
5 | onfocus | 获得焦点是发生 |
6 | onblur | 失去焦点时发生 |
A. 鼠标属性
序号 | 属性 | 功能 |
---|
1 | onmouseover | 鼠标移至元素上方时触发函数 |
2 | onmouseout | 鼠标移至移出元素时触发函数 |
3 | onmousedown | 鼠标按下时发生 |
4 | onmouseup | 鼠标释放时发生 |
5 | onmousemove | 鼠标被移动时发生 |
B. 键盘属性
序号 | 属性 | 功能 |
---|
1 | onkeydown | 某个键盘按键被按下 |
2 | onkeyup | 某个键盘按键被松开 |
3 | onkeypress | 某个键盘按键被按下并松开的整个过程 |
注意: 事件回柄需要加on, 添加事件监听addEventListener类型不需要加’on’前缀, 其他都要加on.
(8) 事件冒泡与捕获
序号 | 属性 | 功能 |
---|
1 | evt.stopPropagation() | 阻止事件冒泡 |
2 | evt.cancelBubble = true | 阻止事件冒泡(IE9之前) |
3 | evt.preventDefault() | 阻止事件默认行为 |
4 | evt.returnValue = false | 阻止事件默认行为(IE9之前) |
(9) 事件监听
序号 | 属性 | 功能 |
---|
1 | document. addEventListener(“click”, function(){ }, true) #捕获方式默认为false | 添加事件监听 |
2 | document. attachEvent(‘onclick’ , function(){ }) | 添加事件监听(IE9之前) |
3 | document. removeEventListener(“click”, function(){ }) | 移除事件监听 |
4 | document. detachEvent(‘onclick’ , function(){ }) | 移除事件监听(IE9之前) |