JavaScript
1:Function定义。
2:var关键字定义变量。在JS中定义变量,可以是任意的类型。是根据后面的数据来决定。
3:function继承,
原型模式 – prototype.
可以通过prototype扩展,(overied)所有的任意方法。
String.prototype.trim=function(){.....}
1:主要内容
1.1、Js的控制语句。
if(true|false){...}
if判断的条件:
在JS中判断中
以下都是false :
1:null
2:0
3:false
4:undefined
var boo=true;
alert(boo);//undefined
if(99){
alert("OKOKK");
}else{
alert("没有");
}
If中的==条件,===
vara1 = "90";//string类型的
vara2 = 90;//类型,number
if(a1===a2){//==在js中就是equals
//===三个等于全等于:数值一样,且类型一样
alert("一样");
}else{
alert("不一样");
}
1.2 for(定义;判断;++|--){...}
以下是是在for中声明一个变量的示例:
functionabc(){
for(vari=0;i<10;i++){
varname = "ddd";
}
alert("iis:"+i+","+name); //这儿是可以的
}
//调用一下abc(),
abc();
以下是考试:
function abc(){
varj=0;
for(vari=0;i<10;i++){
j=j++;
}
alert("jis:"+j);//j=0
}
//调用一下abc(),
abc();
do..while
while(....){}
switch..case..default..
1.3、for in遍历
<script type="text/javascript">
var obj = new Object();
obj.name="Jack";
obj['age']=90;
//以下开始遍历
for(var key in obj){
var value = obj[key];//这儿由于key是一个变量,所以只能使用[]中括号
alert(key+"="+value);
}
</script>
2、JS数据类型的判断
1:instanceof 是判断一个变量,是否是某个对象的引用。
2:typeof(变量),判断一个变量是何种类型,以字符串的形式返回这个类型的名称
A:用typeof判断一个变量的类型。
B:用typeof判断是否是一个函数,且调用它.
2.2、JS中的数据类型
Object– 对象,所有变量都应该是object的子类.
Array – 数组。
String –字符串
Number数字
Function– 说明这个变量是一个函数方法。
2.3、用typeof判断方法实现回调
回调函数
<scripttype="text/javascript">
//第一个参数是一个string类型的name,
//第二个参数是一个function函数
functionfunc1(name,fun){
alert("nameis:"+name);
fun(name);
}
func1("Tom",function(nm){
alert("这是第二个,你输入的名称为:"+nm);
});
</script>
判断:
<html>
<head>
<scripttype="text/javascript">
//第一个参数是一个string类型的name,
//第二个参数是一个function函数
functionfunc1(name,fun){
alert("nameis:"+name);
//判断是否是函数,如果是才去调用,否则就不去调用
if(typeof(fun)=="function"){
fun(name);
}
}
func1("Tom",function(){
alert('ddd');
});
</script>
</head>
<body>
3、Object与Array数据类型
Object是JS,所在类型的最高父类。
在JS中与Java不同的是,Object同时还是Map.,数据封装用法。
3.1、一般的数据封装,用object
<scripttype="text/javascript">
varperson = new Object();
person.name="Jack";//直接将Object当成一个Map来使用,直接设置name的值
person['age']= 90;
//以下提示name,age的值
alert(person['name']+","+person.name);
alert(person['age']+","+person.age);
</script>
3.2、遍历一个Object(Map)
以下是Java代码遍历一个Map
import java.util.Map.Entry;
import org.junit.Test;
public class One {
@Test
public void aa(){
Map<String,Object> mm = new HashMap<String, Object>();
mm.put("name","Jack");
mm.put("age",99);
for(Entry<String,Object> en:mm.entrySet()){
System.err.println(en.getKey()+","+en.getValue());
}
System.err.println("-------------------------");
Iterator<String> keys = mm.keySet().iterator();
while(keys.hasNext()){
String key = keys.next();
System.err.println(key+","+mm.get(key));
}
}
}
在JS中通过for..in遍历一个object
<script type="text/javascript">
var obj = new Object();
obj.name="Jack";
obj['age']=90;
//以下开始遍历
for(var key in obj){
var value = obj[key];//这儿由于key是一个变量,所以只能使用[]中括号
alert(key+"="+value);
}
</script>
3.3、定义Object的方法
1:可以这样定义:
Varobj = new Object();
obj.name=”Jack”;
2:第二种方法 用的更多的这种。
Var obj = {“name”:”Jack”,”age”:90};///JSON
<script type="text/javascript">
var obj = {"name":"Jack","age":90};
alert(obj.name+","+obj.age);
for(var key in obj){
alert(key+"="+obj[key]);
}
</script>
4、Array数据类型
1、定义
1.1
//声明一个array长度是0
var arr = new Array();
arr[0] = "Jack";
arr[1] = "Rose";
arr[5] = "Marry";
alert(arr.length);
//显示
alert(arr[1]+","+arr[0]);
//遍历
for(var i=0;i<arr.length;i++){
alert("第"+i+"个 is:"+arr[i]);
}
1.2、 不用数字定义下标
//声明一个array长度是0
var arr = new Array();
arr['name']= "你好";
arr['addr']= "山东";
//如果没有下标,这个arrary将转换成object
alert(arr.length);//0
for(var key in arr){
alert(key+","+arr[key]);
}
1.3、直接不用new array定义一个数组
String[],list==[]
<script type="text/javascript">
//这样定义更好更快
var arr = ["山东",'北京','上海'];
alert(arr.length);//3
for(var i=0;i<arr.length;i++){
alert(arr[i]);
}
</script>
5、二级联动示例
第一步:定义数据
如何表示数据结构。
第二步:设置程序,出现省,且选择省时再出现市
<!DOCTYPE html PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"content="text/html; charset=UTF-8">
<title>Insert titlehere</title>
</head>
<body>
<!-- //第二步:声明两个select -->
<!-- 第四步:当值发生变化时,设置市的值 -->
省:<select id="pre" style="width:100px" onchange="_chg(this);">
<option value="-1">请选择省</option>
</select>
市:<select id="city" style="width:100px;"></select>
</body>
<script type="text/javascript">
//第一步:定义数据结构
//山东:济南,青岛。
//北京:昌平,东城
var citys = {
"山东":["济南","青岛","烟台","威海"],
"北京":["昌平","东城","海淀"],
"上海":['浦东',"AAA","BBB","CCCC"]
};
//第三步:将山东,北京
//遍历citys,获取这个对象的key.
for(var pr in citys){
//声明option("value","显示")
var op = new Option(pr,pr);
//将op添加到省中去
pre.options.add(op);
}
//第四步的.1:
function _chg(sel){
//第五步:根据value值,获取这个value的对应的citys中的数组
var ccs = citys[sel.value];//[济南,青岛]
//先删除以前高市的信息
city.options.length=0;
//将ccs遍历添加到
for(var i=0;i<ccs.length;i++){
//再声明option
var op = new Option(ccs[i],ccs[i]);
city.options.add(op);
}
}
</script>
</html>