1. 变量类型:数字 (number)、布尔(boolean)、字符串(string)、对象(object)、未定义(undefined)、函数(function)
2. parseInt() 类型转换 强制转换整数
3. NaN(not a number)非数字 NaN != NaN
4. isNaN() 判断是否是NaN
5. parseFloat() 强制类型转换为小数
6. 隐式类型转换:== 先转换类型再比较 ===不转换类型直接比较 如:减法
var a = 5, b = "5"; alert(a == b); //true alert(a === b); //false
var a = "12",b = "5" alert(a + b); //125 alert(a - 7) //7
"+" 表示:1. 字符串连接 2. 数字相加
"-" 表示:1. 数字相减
7. 变量作用域: 局部变量(只能定义在函数里) 全局变量(在任何地方都能用)
8. 闭包:子函数可以使用父函数的局部变量
switch (变量) {
case 值1:
语句1
break;
case 值2:
语句2
break;
default:
语句n
}
var name = "abc", sex = "男";
switch(sex){
case "男": alert(nanme + "先生,您好");
break;
case "女": alert(nanme + "女士,您好");
break;
default: alert(name + "您好")
}
9.三目运算符 ?: 与if else一样的作用
条件 ? 语句1:语句2
if(条件){
语句1
}else{
语句2
}
例子:判断是单数还是双数
var a = 12; a % 2 == 0 ? alert("双数") :alert("单数")
10. break 中断整个循环 continue 停止本次循环
11. 真 true 非零数字 非空字符串 非空对象
12. 假 false 数字零 空字符串 空对象 undefined
13. json
var a = 12, b = 5, c = 'abc';
1). var json = {a = 12, b = 5, c = 'abc'};
json.b; alert(json.a);
2). var json = {a = 12, b = 5, c= 7};
arry = [12,5,7];
alert(json['a']); alert(json.length); //undefine
alert(arry[0]); alert(arry.length); //3
//循环 数组 0 - len , json = for in
//数组循环
for(var i = 0; i < arr.length; i++){
alert("第" + i + "个东西:" + arry[i]);
}
for(var i in arry){
alert("第" + i + "个东西:" + arry[i]);
}
//json循环
for(var i in json){
alert("第" + i + "个东西:" + json[i]);
}
14. 数组
arguments 可变参 不定参
currentStyle[attr] 获取非行间样式
getComputedStyle(oDiv, false) 兼容FF 但IE9以下不兼容
function getStyle(obj,name){ //获取样式函数
return obj,currentStyle[name];
}else{
return getComputedStyle(obj,false)[name];
}
//调用函数 getStyle(oDiv, "width");
push() 往末尾添加一个元素 unshift() 往头部添加一个元素
pop() 往末尾删除一个元素 shift() 往头部删除一个元素
splice() 从中间添加或删除数字元素
var arr = [1,2,3,4,5,6];
1). splice(起点,长度); arr.splice(2,3); //[1,2,6]
2). splice(起点,长度,元素); arr.splice(2,0,"a","b","c"); //[1,2,a,b,c,3,4,5,6]
3). splice() 先删后添加 arr.splice(2,2,"a","b"); //[1,2,a,b,5,6]
4). concat(arr2); 数组链接
5). join(分隔符) var arr = [1,2,3]; alert(arr.join("-")); //[1-2-3]
6). sort() 排序 只认字符串
var arr = [12,8,99,19,112];
arr.sort(function(n1,n2){
//return n1-n2;
if(n1 else if(n1>n2){ return 1;} else{ return 0; } }) 15. 定时器 开启定时器 setInterval(函数名,毫秒); 间隔型 无数次执行 setTimeout(函数名,毫秒); 延迟型 只执行一次 关闭定时器 clearInterval(timer); clearTimeout(timer); 获取系统时间:Date对象 显示系统时间: 空位补零 字符串连接 时 getHours(); 分 getMinutes(); 秒 getSeconds(); 年 getFullYears(); 月 getMonth() + 1; 日 getDate(); 星期 getDay() charAt() 获取字符串某一位 兼容IE9以下版本 offsetLeft() 获取物体的边距 offsetTop() offsetWidth() offsetHeight() 无缝滚动原理: 1) 让ul一直向左移动 2) 复制li : (a). innerHTML += (b)修改li的width 3) 滚动过界后,重设位置:判断过界 4)改变滚动方向:(a). 修改speed (b). 修改判断条件 5) 鼠标移入暂停:(a). 移入关闭定时器 (b). 移出重新开启定时器 16. DOM 子节点(只算第一层):childNodes children 父节点:parentNode 节点类型:nodeType nodeType == 3 为文本节点 nodeType == 1 为元素节点 定位的 offsetparent 获取元素在页面上的实际位置(根据谁定位获取的就是谁) firstChild 首子节点 lastChild 尾子节点 兼容IE6-8 firstElementChild lastElementChild 兼容IE9以上 FF chrome 兼容所有浏览器的判断: if( oUl.firstChild ){ oUl.firstChild.style.color = "red"; }else{ oUl.firstElementChild.style.color = "red"; } 兄弟节点(有兼容问题):nextSibling previousSibling nextElementSibling previousElementSibling //元素属性操作 设置 setAttribute(名称,值); 获取 getAttribute(名称); 删除 removeAttribute(名称); 第一种方式: oTxt.value = "asb"; 第二种方式: oTxt["value"] = "asb"; 第三种方式: oTxt.setAttribute("value","asb"); className 封装函数 function getByClass(oParent,sClass){ var aResult = []; var aEle = oParent.getElementsByTagName("*"); for(var i = 0; i < aEle.length; i++){ if(aEle[i].className == sClass){ aResult.push(aEle[i]); } } return aResult; } 创建元素: createElement("li"); 父级.appendChild(子节点); 添加元素 追加一个节点到末尾 插入元素 insertBefore(子节点,原有节点); 在已有元素前插入 删除元素 removeChild(节点); 删除一个节点 父级.appendChild(子节点); 先从父级上删除 再添加 父级.insertBefore(子节点,在谁之前); 倒序插入 文档碎片: document.createDocumentFragment() 表格的应用 获取 tBodies (数组) tHead (元素) tFoot (元素) rows (行) cells (单元格) toLowerCase() 转换大小写 模糊搜索 search() 找到并且返回所在的位置,若没找到返回-1 多关键词搜索 split() 切开 表单: onsubmit 提交时发生 onreset 重置时发生