日期:2014-05-16  浏览次数:20326 次

js(学习笔记)

1.js中双单引号均可。
<a href="javascript:alert('hello')">点点</a>
<a href="#" onclick="alert('hello')">点点</a>

2.js的变量
null变量的值为空,undefine没有指向任何对象
var i=10;
i="aaaa";
i最后为aaaa
i=10;i类似于全局变量

3.js调试
安装DeBugBar来协助调试

4.判断变量初始化
var x;
if(x==null)
{}
if(typeof(x)=='undefined')
{}
if(!x)
{}
推荐用最后一种方法
if(x)//变量北初始化了或变量不为空或变量不为0

5.函数的声明
alert(add(1,2));
function add(i1,i2){     //最好这个大括号不要换行,避免引起bug
  return i1+i2;
}
//alert(add(1,2));//alert()在function之前之后均可
匿名函数
var f1=function(i1,i2){return i1+i2;};(注意;的区别意义)
alert(f1(1,2));
//声明一个函数,立刻使用

6.js面向对象基础:
js中没有类的语法,是用函数闭包(closure)模拟出来的
function Person(name,age){//是一个函数,js没有class,这里是用一个函数来模拟class
this.Name=name;//this.Name动态变量
this.Age=age;
this.SayHello=function(){alert(this.Name)};
}
Person p1=new Person('dan',23);
p1.SayHello();
【p1.sex='男';
alert(p1.sex);//也是动态增加属性】

7.Array对像(相当于c#中的ArrayList,Hashtable)
是一个动态数组,无需预先定制大小
var arr=new Array();
arr[0]="zheng";
arr[1]="dan";
arr[2]="dan";
for(var i=0;i<arr.length;i++){
 alert(arr[i]);
}
例1:
function getMax(arr){
  var max=arr[0];
  for(var i=0;i<arr.length;i++){
    if(arr[i]>max){
       max=arr[i];
       return max;
      }
  }
}
var var1=new Array();
var1[0]=20;
var1[1]=10;
var1[2]=2;
var1[3]=5;
int max=getMax(var1);
alert(max);
例2:
{3,a,8,haha}
i和length-1个交换位置

function myReverse(arr){//传递不是拷贝
for(var i=0;i<arr.length/2;i++){
var temp=arr[i];
arr[i]=arr[arr.length-i];
arr[arr.length-i]=temp;
}
}
var arr=new Array();
arr[0]="zheng";
arr[1]="dan";
arr[2]="dan";
alert(myReverse(arr));
例3:
将数组字符串用|进行分割  arr.join("|")

function myjoin(arr){
 var s=arr[0];
 if(arr.length<=0)
  return;
 for(var i=1;i<var.length;i++){
  s+="|"+arr[i];
   }
  return s:
}

var arr=new Array();
arr[0]="zheng";
arr[1]="dan";
arr[2]="dan";
alert(myjoin(myjoin(arr)));

8.js中的Dictionary
Array: 数组,Dictionary , Stack.
var diet=new Array();
dict["人"]="zheng";
dict["口"]="dan";
dict["手"]="dan";
alert(dict["人"]);//弹出结果为"zheng";
["人"为key,"zheng"为value的Dictionary]
foreach(var k in dict{
alert(k);//遍历出来的结果为key(即:人口手);
}
注:数组用法是Dictionary的特例(key为整数)

9.Array的简化声明
var arr=[1,2,3];//数组
var nameAge={"tom":30,"joy":20};//Dictionary

10.用for获取对象所有的成员,对象的成员就是以对象的key的形式出现的
for(var a in document){
alert(a);
}
var p1=new Object();
p1.Name="zheng";
p1.age=23;
p1.SayHello=function(){alert("hello");};
p1.SayHello();
foreach(var a in p1){
alert(e);//得到zheng 23 SayHello;e 就是每一个key
}

11.js无需编译直接运行,开发环境vs中,记事本中
vs2008SP1VS90SP1-KB958502-x86这两个补丁 JQuery  "."不出来也不影响运行

12.
<script type="text/javascript"></script>
引用外部js文件,外部文件只会加载一次,降低网站的负载。现实共享。
<script src="commonJs.js" type"text/javascript"></script>[head标签中]