JavaScript经历了残酷的竞争,至今已经统治了web世界,现在系统梳理一下相关的知识。
JavaScript可以分为三部分:ECMAScript、DOM和BOM。
一、ECMAScript是JavaScript的核心,规定了这门语言的数据、语法、结构等基本概念。
Global是ECMAScript最顶级的对象(兜底对象),但体现在代码中它是不存在的。在JavaScript脚本中使用此对象,会报错(not defined),但是ECMAScript规定Number、Boolean、Object、NaN、Math等对象都是Global对象的属性,对应的语法在此不做展开。
二、DOM是文档对象模型,是ECMAScript操作HTML的API。
DOM
DOM使用节点来把HTML以及XML文档描述成一个多层次的节点结构。
节点具有的通用属性和方法:nodeType nodeName nodeValue childNodes parentNode previousSibling nextSibling fistChild lastChild ownerDocument ||方法 hasChildNodes() appendChild() insertBefore() replaceChild() cloneNode()
常用的节点类型:Document(9)、Element(1)、Text(3)、Doctype(10)类型。
Document类型:document对象是其实例对象,是window的属性,表示整个HTML页面。
document对象的特有属性:documentElement(html节点) body(body节点) title URL(当前地址栏显示的url) domain(当前页面的域名) referrer(连接到当前页面的url)
document对象特有方法:getElementById() getElementByTagName() getElementByName(含有name属性值)
Element类型:所有的常用标签,<html>、<head>、<div>等标签。
特殊属性和方法:id、class等,getAttribute() setAttribute() removeAttribute() createElement()--创建一个元素节点。
Text类型:表示可以按字面意思解释的纯文本内容,可以是转义后的HTML字符,不能包含HTML代码。
特殊属性和方法:createTextNode() normalize()--去除空的文本节点以及合并两个相邻的文本节点 splitText(num)--将一个文本节点按照传入的位置值分隔成两个文本节点
DOM的扩展:(SelectorsAPI和HTML5两部分)
SelectorsAPI部分
querySelector()和querySelectorAll()方法:Document和Element类型节点调用。
eg.var target = document.querySelector('.abc/#abc/div');//querySelectorAll()得到的是集合。
HTML5部分
getElementsByClassName()方法、scrollIntoView()方法(相