基本概念
javaScript
是一门解释型语言,浏览器充当解释器。js
执行时,在同一个作用域是先解释再执行。解释的时候会编译function
和var
这两个关键词定义的变量,编译完成后从上往下执行并向变量赋值。ECMASCript
中的一切(包括变量、函数名、操作符)都区分大小写。
变量
变量在第一次用到的时候就设置在内存中,使用变量之前先进行声明。可以使用var
关键字来进行变量的声明。
变量命名:变量名包括全局变量,局部变量,类变量,函数参数等等都属于这一类。
变量命名都以类型前缀+有意义的单词组成,可以用驼峰命名法增强变量的可读性。
前缀规范:
s:表示字符串
n:表示数字
a:表示数组
r:表示正则表达
f:表示函数
g:表示全局变量
创建合法的变量名应该遵循的规则:
第一个字符不能是数字,后面可以跟任意的数字,字母,下划线。
javascript
会忽略多余的空格,变量之间用逗号隔开。如果声明了一个变量但没有赋值,该变量存在值为undefined
js的数据类型
基本数据类型:字符型、数值、布尔
引用数据类型:对象、数组
特殊数据类型:Null、Undefined
对象
Object
类型是一个无序的集合,可以存放任意类型的对象,所有其他对象都继承这个对象,创建Object
类型有两种,一种是使用new
运算符,一种是字面量表示法。var obj = new Object();
Object.prototype对象所有构造函数都有一个`prototype`属性,指向一个原型对象。实例obj继承object.prototype的属性和方法
1.对象是一种特殊的数据,拥有属性和方法,`javascript`基于[prototype]
2.对象是方法和属性的集合
3.函数时一种特殊的对象
面向对象三大特征:封装、继承、多态
数组
Array对象:提供对创建任何数据类型和数组的支持
Array数组的3个属性:length、prototype、constructor
Array对象方法:
concat()、join()、pop()、push、slice()、sort()、splice()、toString()...
Null和Undefined
null表示尚未存在的对象,常用来表示函数企图返回一个不存在的悐
undefined:对象属性不存在,声明了变量未赋值
BOM和DOM
DOM(文档对象模型)是HTM和XML应用程序的接口(API) DOM代表着被加载到浏览器窗口里的当前网页的模型
BOM用来处理浏览器窗口和框架。
区别:DOM
描述了处理网页的方法和接口,BOM
描述了与浏览器进行交互的方法和接口
HTML将代码分解为DOM节点层次图:
查找元素:W3C提供了比较方便的定位节点的属性和方法
getElementById()获取特定的id元素节点
getElementsByTagName()获取相同元素的节点列表
getElementsByName()获取相同名称的节点列表
getAttribute()获取特定元素节点属性的值
setAttribute()设置特定元素节点属性的值
removeAttribute()移除特定元素节点属性
元素节点属性:
nodeName返回一个字符串,内容是节点的名字
nodeType返回一个整数,给定节点类型
nodeValue返回节点的当前值
DOM
操作
creatElement(element)创建一个新的元素节点
creatTextNode()创建一个包含给定文本的新文本节点
appendChild()指定节点的最后一个节点列表后添加一个新的子节
insertBefore()将一个给定节点插入到一个给定元素节点的给定子节点的前面
removeChild()从一个给定元素中删除子节点
replaceChild()把一个给定父元素里的一个子节点替换为另外一个节点
DOM
通过创建树来表示文档,描述了处理网页内容的方法和接口,从而使开发者对文档的内容和结构具有空前的控制力,用DOM API
可以轻松地删除、添加和替换节点。
DOM 0级事件处理程序:把一个函数赋值给一个事件的处理程序属性
innerText、innerHTML、outerHTML、outerText
DOM 2级事件处理程序:定义了两个方法,用于指定和删除事件处理程序的操作。`addEventListener()`和`removeEventListener()`
BOM
部分
window对象
document对象:实际上是window对象的属性,document == window.document为true,是唯一一个既属于BOM又属于DOM的对象
document.lastModified //获取最后一次修改页面的日期的字符串表示
document.referrer //用于跟踪用户从哪里链接过来的
document.title //获取当前页面的标题,可读写
document.URL //获取当前页面的URL,可读写
document.anchors[0]或document.anchors["anchName"] //访问页面中所有的锚
document.forms[0]或document.forms["formName"] //访问页面中所有的表单
document.images[0]或document.images["imgName"] // 访问页面中所有的图像
document.links [0]或document.links["linkName"] //访问页面中所有的链接
document.applets [0]或document.applets["appletName"] //访问页面中所有的Applet
document.embeds [0]或document.embeds["embedName"] //访问页面中所有的嵌入式对象
document.write(); 或document.writeln(); //将字符串插入到调用它们的位置
还有location
对象.navigator
对象.screen
对象
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。