js正则表达式声明:
var exp =/^\d{11}$/;
^字符串开始$字符串结束
//寻找符合exp正则表达式的子串下标
str.search(exp);
运算符
数学运算符
+ - * / % ++ -- += -=....
特殊对待
/:
JAVA:
int a =10;int b=3 a/b=3
js;
var a=10;var b=3 a/b=3.3333333333333335
Math.floor();
js中number
逻辑运算符
&& || !
比较运算符
> < >= <= == ===
==:
Var s1="abc";
Var s2="abc";
s1==s2;js当中 比较两个字符串的内容
"800"==800 true
===先比较类型再比较值
"800"===800 false
java str1.equals(str2);
三目运算符
a==b ? a:b;js中可以不写boolean类型
逻辑分支
if(){}else if(){}
else{}
//java7可以放String.
switch()
{
case1:break;
case 2:break;
default:
}
流程控制语句
for(i=0;i<xxx;i++)不写var
{
}
while(js可以写其他任意类型区别于java){}
do{}while(任意类型);
js数组:
1>js数组的长度是变长的.
2>js数组元素的类型可以不同.
声明数组
JAVA:
int[] ary={1,2};
int []ary=new int[]{1,2,3};
int []ary=new int[3];
JS:声明
var ary=[1,2,3,"abc"];什么类型都可以放入数组.
var ary=new Array();类比于泛型为Object的java的集合
ary[ary.length]=100//末尾追加一个100
使用数组
查
长度:ary.length
元素:ary[index]
增
直接给某下标元素赋值.
删
调用api完成删除
改
重新赋值
Array的相关API方法
pop
push
reverse
sort
join
js的函数:
function doClick(参数列表)//不用写var
{
return;//不写返回值类型
}
函数参数的第二种访问方式:
function doClick(o1,o2)
{
arguments[0]//代表o1
arguments[1]//代表o2
}
js中可以使用arguments访问调用者传过来的数组,
js的函数是没有重载现象的,在调用过程中只检测函数名称,不检查参数列表,所以出现两个同名的函数,后一个有效,前一个被覆盖.
====================================================
Dom(document object model)
文档对象模型
js引擎会把html页面装载成一颗倒置的文档��.
js提供一系列的API方法操作这颗树.
查询节点
1>var obj=document.getElementById("id");
返回节点数组
2>documents.getElementsByTagName("li");
访问/修改节点的属性
1>innerHtml 描述标签的内容文本
2>value 描述了表单组件的值
3>style 描述了组件的css样式(可以用javascript动态控制style属性)
<span style=" "></span>
div1.style.display == "none"//只能对内联样式进行控制,(属性初始值为空字符串)
访问obj的内联样式:
obj.style.display
obj.style.color
obj.style.backgroundColor
obj.style.borderWidth
给divObj设置内联样式
4>修改节点的class属性(实现同一个对象在多种css样式之间切换)
var obj;
obj.className='xxx'
删除节点
表单验证:
1>验证用户输入格式是否正确
2>阻止表单的提交
<input type="submit" value=""/>
<form action="" onsubmit=" return checkForm();"></form>//阻止表单提交.
增加节点:
1>创建新节点:
var div =document.createElement("div")
body.appendChild(div);添加到子标签的末尾.
insertBefore(new ,ref);
删除节点:
removeChild(...)
replaceChild(...)