1,js包含了Bom、Dom、 ECMAscript 三部分。
2,js的基本数据类型是 string 、number 、boolean。
3,js引用数据类型包括 Array、Date、Object、RegExp、Function。
4、js的两个空类型是null和undefined。
5、in关键字的用法:
1,变量对象的键
for(var 变量 in 对象名){}
2,判断属性是否在对象中
关键字 in 对象名
3,in 关键字操作数组的时候判断的是索引是否存在,而不是值。
6,值类型:存储的是数据本身的变量。
值类型的复制:将存储的数据直接赋值,两个变量是完全独立的。
引用类型:存储的是数据在内存中的地址,数据在内存中单独存储
引用数据的复制:将对象的地址复制一份单独存储,但是共用一个对象,任何一个修改都会改变对象的值。
7、逻辑或和与
表达式1 || 表达式2
如果表达式1为真则返回表达式1,如果表达式1为假则返回表达式2
例子: var num = 0 || 1 cosole.log(num) ----- 1 常用:var event = e || window.Event 或者在方法没传参的时候给赋默认值
表达式1 && 表达式2
如果表达式1为真,则返回表达式2
如果表达式1为假,则返回表达式1
例子:
var num = 1 && 2 cosole.log(num) ----- 2
var num = 0 || 1 cosole.log(num) ----- 0
8、delete 关键字可以用来删除对象的属性,还有未使用var 声明的变量。
delete 关键字有返回值,用来表示删除属性是否成功。
9、定义函数的基本方法:
1,函数声明:
function fun1(){
}
2,函数表达式:
var fun2 =function (){
}
3,Function:
var fun3 = new Function(){
}
10.Dom 操作:(增删改查)
增:document.createElement appendChild
删:removeChild
改:style,id,classsname,innerhtml,innertext
查:getElementById getElementsByTagName getElementsByClassName
HTML节点的查询
对象类型 | 属性/方法 | 说明 |
文档 | getElementById(id) | 根据标签的id得到对应的标签对象 |
文档 | getElementsByTagName(tag) | 根据标签名得到对应的所有子标签对象的集合(数组) |
|
|
|
节点 | nodeName 标签节点 | 得到节点名 |
节点 | nodeValue Text/Attr | 得到节点的值 |
节点 | nodeType | 节点类型值 |
|
|
|
元素节点 | childNodes | 得到所有子节点的集合(数组) |
元素/文本节点 | parentNode | 得到父节点对象(标签) |
元素节点 | firstChild | 得到第一个子节点(标签/文本) |
元素节点 | lastChild | 得到最后一个子节点(标签/文本) |
|
|
|
元素节点 | getAttribute(attrName) | 根据属性名得到属性值 |
HTML节点的增删改
对象类型 | 属性/方法 | 说明 |
文档节点 | createElement(tagName) | 创建一个新的元素节点对象 |
文档节点 | createTextNode(text) | 创建一个文本节点对象 |
document |
|
|
元素节点 | appendChild(node) | 将指定的节点添加为子节点 |
元素节点 | insertBefore(new,target) | 在指定子节点的前面插入新节点 |
element |
|
|
元素节点 | replaceChild(new, old) | 用新节点替换原有的旧子节点 |
元素节点 | removeChild(childNode) | 删除指定的子节点 |
元素节点 | setAttribute(name, value) | 为标签添加一个属性 |
元素节点 | removeAttribute(name) | 删除指定的属性 |
|
|
|
元素节点 | innerHTML | 向标签中添加一个标签 |
11,捕获异常的方法
try{
//可能出现异常的代码
}catch(e){
//出现异常后的处理代码以及错误信息
}finally{
//不管有没有出现异常,这里的代码都执行,做释放资源的操作。
}
12,构造函数(constructor):
自定义构造函数的执行过程:
1,使用new 关键字创建对象
2,把新创建的对象赋值给构造函数里的this
3,在构造函数内使用this为新创建出来的对象添加属性
4,默认会返回新创建的这个对象
构造函数的返回值:
1,如果不写return 则默认返回新创建的对象
2,如果return的是空值,或者是基本类型或者是null,则返回的还是新创建的对象
3,如果return的是object类型的值,则返回return之后的值
function person(name,age){
this.name =name;
this.age =age;
this.sayHello = function (){
console.log("hello");
}
}
var p = new person()
如果调用函数的时候不给构造函数实参,构造函数就不会创建新对象,里面的this将会指向window,添加的属性也会添加给window。
如果构造函数没有参数可以不写括号调用
13,创建对象的四种方式:
1,使用字面量创建对象
var o = { key:val,key:value}
缺点:创建一个用一个,不能复用,造成代码冗余
2,使用内置构造函数创建对象
var o= new Object()
缺点:创建出来的对象是空对象,要手动给对象添加属性,代码冗余
3,封装创建对象的工厂函数(不推荐使用)
function createObj(){
var obj ={};
obj.xx=xxx;
return obj;
}
4,自定义构造函数
function 构造函数名{
this.xxx = xxx;
}
注意: 1,构造函数名首字母要大写
2,构造函数一般和new关键字一起使用
3,注意构造函数的返回值
14,常用事件
属性 | 值 | 描述 |
onclick | 回调函数 | 当鼠标被单击时执行脚本 |
ondblclick | 回调函数 | 当鼠标被双击时执行脚本 |
onmousedown | 回调函数 | 当鼠标按钮被按下时执行脚本 |
onmousemove | 回调函数 | 当鼠标指针移动时执行脚本 |
onmouseout | 回调函数 | 当鼠标指针移出某元素时执行脚本 |
onmouseover | 回调函数 | 当鼠标指针悬停于某元素之上时执行脚本 |
onmouseup | 回调函数 | 当鼠标按钮被松开时执行脚本 |
onload | 回调函数 | 当文档被载入时执行脚本 |
onchange | 回调函数 | 当元素改变时执行脚本 |
onsubmit | 回调函数 | 当表单被提交时执行脚本 |
onreset | 回调函数 | 当表单被重置时执行脚本 |
onselect | 回调函数 | 当元素被选取时执行脚本 |
onblur | 回调函数 | 当元素失去焦点时执行脚本 |
onfocus | 回调函数 | 当元素获得焦点时执行脚本 |
。。。。。