一.JS
一.数据类型
1. 基本数据类型(3):数值、字符串、布尔
2. 复合数据类型(2):数组、对象
3. 特殊数据类型(2):空(null)、未定义(undefined)
二.命名规则
字母、数字、 $、下划线,但不能以数字开头。严格区分大小写,(文本输出:document.write)
JavaScript程序的注释 // 单行注释 /*多行注释 多行注释*/
三.基本数据类型
1. 类型转换 parseInt()、parseFloat()、isNaN();
2. 基本类型声明: var a=”斯蒂芬”; var b=12; var c=true; 函数中变量用var 声明是局部变量,不用var声明是全局变量
查看变量类型 typeof(),例:typeof(a);
四.数组
1. 类型声明: var c=[“微软”,12,12.3,true]; var a=new Array(); a=new Array(“微软”,12,12.3,true);
2. 数组处理: var arr=[“微软”,12,12.3,true];
(1.默认调用toString方法:document.write(arr); (2.添加数据: arr.concat(“chm”);
(3.在数组的每一个元素中间加上给定的字符:alert(arr.join("-")); (4.将所有数组元素反转:alert(arr.reverse());
(5.截取数组:arr.slice(2,5); 包前不包后,如果只有一个值,取到最后 (6.数组长度 arr.length;
(7.数组起始位置添加元素:数组名.unshift(); (8.数组起始位置移除元素:数组名.shift();
(9.数组末尾元素追加:数组名.push(); (10.数组末尾元素去除:数组名.pop();
(11.数组排序:数组名.sort( [ function ] ); (12.数组元素删除:数组名.splice();
3.数组遍历
(1.利用数组的length属性,索引遍历数组
for 循环语句 :
for(初始化表达式 ; 循环条件表达式 ; 循环后的操作表达式)
{ 执行语句块; }
(2.利用for(变量 in 数组名){ 数组名[变量] } 遍历数组;
五.对象
1.分类:(1.浏览器对象:窗口对象windows、文档对象document
(2.内置对象: 字符串对象String、数学对象Math、日期对象Date
(3.HTML对象: 各种HTML标签
2.具体用法:
(1.窗口对象:1. window.alert("确定要退出吗?"); 2.window.confirm("是否提交?"); 3. print(); 打印
4.window.prompt("请输入年份", 2017); 5.setTimeout(); 单次定时器 setInterval(); 多次定时器
取消定时器temp=setInterval("test()",1000); function(){clearInterval(temp); }
temp=setTimeout("test()",1000);function stop(){clearTimeout(temp);}
6. open(); 打开新窗口 7.close();关闭窗口 8.history.back();返回到前一页 history.forward(); 前进到下一页
9.location.reload();刷新 location=”index.html”/location.href=”index.html”;跳转到index.html页面
10.history.go(0);刷新;history.go(2);前进两页;history.go(-1);后退一页
(2.文档对象:1. document.write(“输出内容”); 2.获取id名:var id=document.getElementById(“id”); 单个对象
3.获取name名:var id=document.getElementsByName(“name”); 一组对象
4.获取标签名 var p=document.getElementsByTagName(“p”); 一组对象
5.获取class名 var c=document.getElementsByClassName("c"); 一组对象
6.获取表单:var forms=document.forms 一组对象 var form1=document.forms[0]获取第一个form有submit提交
例如 btn.onclick=function () { document.forms[0].submit(); }
用表单的name名获取表单document.name.submit();
(3.字符串对象:1.字符串长度a.length 2.添加数据: arr.concat(“chm”);
3.截取字符串:单个a.charAt(1);一串a.slice(2,5); a.submit(1,3),.substr(1);
4.将字符串转化为数学运算符:alert(eval(“1+3”)); 5.字符串分割数组:字符串a.split(“,”)
6.indexOf(string,[int])返回字符串首次出现的位置,如果没有返回-1;
7.lastIndexOf()从右向左查,返回字符串首次出现的位置,如果没有返回-1;
8.toLowerCase()字符串转化为小写; 9.toUpperCase()字符串转化为大写;
(4.数学对象:1.Math.abs(x)返回x的绝对值; 2.Math.min(x,y)返回x、y中较小的值;
3.Math.max(x,y)返回x、y中较大的值; 4.Math.random()返回0-1的随机数;
5.Math.round()四舍五入取整; 6.Math.floor()向下取整; 7.Math.ceil()向上取整;
8.Math.abs(num) 绝对值 9.Math.ceil(19.3) 12,向上取 10.Math.floor(11.8) //11 向下取整
11.Math.pow(x,y) x的y次方 12.Math.sqrt(num) 开平方
(5.日期对象:1.Date后有参数 则为参数的时间 例:var time = new Date ('October 15, 2011, 10:30:00');
2.Date后如果没有参数 则表示当前时间 例:var today = new Date ();
2.Date对象的get、set方法:Seconds、Minutes(0-59);Hour小时(0-23);Month月(0-11);Day星期(0-6)Date天(1-31);
|
|
(6.HTML对象: 1.属性操作 getAttribute(); 获取属性值 setAttribute();设置属性值 removeAttribute();删除属性值
例:a.getAttribute(“type”);获取对象a的type值 a.getAttribute(“name”);获取对象a的name值
a.setAttribute("value", "12345") 设置对象a的value值为12345;
2.内容的操作:innerHTML;获取标记之间的所有内容 innerText || textContent; 获取标记的文本内容
3.元素创建:document.createElement();创建元素节点 document.createTextNode();创建文本节点
offsetLeft,offsetTop,clientWidth,clientHeight,offsetHeight,offsetWidth
六. 事件
1.一般事件:onfocus获取焦点 onblur 失去焦点 onchang 内容改变
注意:input框失去焦点触发函数
<input type="text" value="${o.count}" name="count" onblur="changeNum(this)">
Js获取值:参数不能写this
function changeNum(s){ alert(s.value); };
2.页面事件: onload;事件加载 onunload;退出、刷新页面
3.鼠标事件:onclick 左键单击 ondblclick 左键双击 oncontextmenu 点击鼠标右键 onmouseleave鼠标滑出(解决冒泡)
onmouseover鼠标滑上 onmouseout鼠标滑出 onmousedown鼠标按键按下 onmouseup鼠标按键松开
onmousemove鼠标移动
4.键盘事件:onkeydown;按下键盘按键 onkeyup;松开键盘按键 onkeypress; 键盘按键被按下并释放
5.表单事件:onsubmit;表单提交 oncut、 oncopy;与 onpaste 文本域或文本剪切、复制和粘贴 onselect;文本选中
6.event事件:event对象代表事件的状态,比如事件在其中发生的元素,键盘按键的状态,鼠标的位置,鼠标按钮的状态.
event = e || window.event; 键盘按键Code码event.keyCode; X轴坐标event.clientX; Y轴坐标event.clientY;
offsetLeft,offsetTop,clientWidth,clientHeight,offsetHeight,offsetWidth
1).事件绑定:addEventListener()/attachEvent();
2).解除绑定:removeEventListener()/detachEvent();
3).阻止事件冒泡:cancelBubble=true/stopPropagation();
七.正则
1.匹配内容 .(点):匹配除换行符之外的任何一个字符。IE下[^\n],其它[^\n\r]
\d:匹配数字 [0-9] \D:匹配非数字字符 [^0-9] \w:匹配字母数字和下划线[a-zA-Z0-9_]
\W:匹配除字母数字下划线之外的字符 [^a-zA-Z0-9_] \s:匹配一个空白字符 [ \n\r\t\f\x0B]
\S:匹配一个非空白字符 [^ \n\r\t\f\x0B] . : 匹配除换行符以外的任意单个字符 []:匹配任意单个字符
转义字符\( ) :子字符集|:或者
2.匹配次数:
?匹配0次或1次 * 匹配0次或多次 + 匹配1次或多次
{2,7} 匹配2次到7次 {6}匹配6次 {6,} 匹配6次以上 ([1][89])|([2-9][0-9])
3.匹配方式
注意:正则表达式在前,匹配内容在后
1. var a=/^[\u4e00-\u9fa5]{2,4}$/
var name=document.ElementsByName(“name”)[0].value;
var name_tip=document.ElementsByName(“name_tip”)[0];
If(a.test(name) ){
name_tip.InnerHTMl=”格式错误”;
}
例:邮箱 Var pattern=/^([a-zA-Z0-9_\.\-]+)@([a-zA-Z0-9_\.\-]+)\.([a-zA-Z]{2,4})$/;
Var str=’[email protected]’ arlet(pattern.test(str))
匹配姓名:[\u4e00-\u9fa5]{2,4} 行首行尾空格:^\s*|\s*$ 网址:[a-zA-z]+://[^\s]*
Email:^\w+@[a-z0-9]+(\.[a-z]+){1,3}$ QQ号:[1-9][0-9]{4,9} 邮政编码:[1-9]\d{5}
身份证:[1-9]\d{14}|[1-9]\d{17}|[1-9]\d{16}x