作为前端开发,每天都在跟JavaScript打交道,感觉很了解它,也翻过几遍《JavaScript高级程序设计》,始终没有建立起对它的整体认识,现在建立吧。JavaScript经历了残酷的竞争,至今可以毫不夸张的说,已经统治了web世界。JavaScript可以分为三部分:ECMAScript、DOM和BOM。ECMAScript是JavaScript的核心,规定了这门语言的数据、语法、结构等基本概念。Global是ECMAScript最顶级的对象(兜底对象),但体现在代码中它是不存在的。在JavaScript脚本中使用此对象,会报错(not defined),但是ECMAScript规定Number、Boolean、Object、NaN、Math等对象都是Global对象的属性。DOM是文档对象模型,是ECMAScript操作HTML的API。document是DOM的实例对象,表示整个DOM文档。整个文档元素表示:document<!DOCTYPE html>表示:document.doctype或者document.childNodes[0]<html>元素的表示:document.documentElement或者document.childNodes[1]<head>元素的表示:document.head(只有Chrome和Safari实现)<body>元素的表示:document.body文档信息:document.title(标题)、document.URL(完整url)、document.domain(页面的域名)、document.referrer(连接到当前页面的页面url)获取元素的方法:getElementById(),getElementsByTagName(),getElementsByName()。BOM是浏览器对象模型,是ECMAScript操作浏览器的API。window是BOM的核心对象,表示一个浏览器实例。它还充当着ECMAScript中的Global对象,因此网页中定义的变量、对象、函数等都是它的属性。window对象浏览器相关的属性和方法:screenLeft和screenTop表示窗口相对屏幕的位置(moveTo()和moveBy()表示移动窗口的方法)。innerWidth和innerHeight表示视窗的大小(resizeTo()和resizeBy()表示改变视窗的方法)。open()和close()方法表示打开和关闭某一URL的方法。setTimeout()和setInterval()表示延时调用和间歇调用方法(毫秒数表示此毫秒后将任务添加到任务队列)。alert()、confirm()和prompt()为系统弹出提示框方法。location对象:是window的属性,也是document的属性,即为应用同一属性。https://test.com.cn:8080/search/#info?wd=javascript(protocol、host、hostname、port、pathname、hash、search、href和assign()、replace()、reload(),八个属性三个方法)。navigation对象:记录浏览器相关参数。screen对象:记录显示器相关参数。history对象:go()、back()、forward()方法。