1.JavaScript 
 是一种在浏览器端执行的语言。
 JS 是解释型语言,无需编译就可以随时运行,即使有语法错误,没有语法错误的部分还能正确运行。
 
2.JS 开发环境 

3.JS入门 
  <script type="text/javascript" >
      alert(new Date().toLocaleDateString());
  </script>
  
  放到<head>中的<script>在body加载之前就已经运行了。
  在<head>中和<body>中,<script>可以写多次
  html页面从上往下执行。
  <!--引用公共的JS文件,就像C#中的添加引用-->
  <script src="common.js" type="text/javascript" ></script>

 
4.事件 

<a href ="javascript:alert('Hello')">点击</a>
  <a href ="1.htm" οnclick="alert('Hello2')">点点</a>
  只有在超链接的 href 中的 javascript中才需要加“javascript”,因为它不是事件,而是把“Javascript”看成像“http:”,"ftp:","thunder://","ed2k://","mailto:"一样的网络协议
  交由js解析引擎处理,只有href中是一个特例。
  button的onclick事件:
  <input type="button" value="点" οnclick="alert('点我啊!')" />

 
5.JS 的变量 
 javascript 中即可双引号,单引号声明变量
 Javascript中有null,undefined两种,null 表示变量的值为空,undefined 则表示变量还没有指向任何对象,未初始化。
 

<script  type="text/javascript">
      var i=10;//声明一个变量,名字为i,指向10 这个整数 ,一旦指向10,i就是int 类型了。
      i="abc";//嫁鸡随鸡嫁狗随狗,制定类型之后,还可以再变
      alert(i);
  </script>

6.JS 排错与调试 
 IE调试选项要打开,Internet选项/高级,去掉“禁用脚本调试”前的勾选
 以调试方式运行页面
 设置断点,监视变量等操作和C#一样
 
7.判断变量初始化 

JS中判断一个变量是否为空,是否已经初始化的三种方法:
  (1) var x;
        if(x==null);
        { alert("null");}
  (2) if(tyeof(x)=="undefined")
      { alert('undefined');}
  (3)if(!x) //推荐用这种写法
    {alert('不 x ');}

 
 if(x){} 变量被初始化了或者变量不为空或者变量不为0
 
8.函数的声明 

Javascript中声明函数的方式:(没有返回值类型,没有参数类型)
  function add(i1,i2){
    return i1+i2;
   }
  注意格式
  
  <script type ="text/javascript" >
   function add(i1,i2){
          return i1+i2;
    }
   var i3=add(1,2);
   alert(i3);
  </script>

 注:函数的使用可以放在声明的前后,都可以。
    没有返回值的话,就是undefined
 
9.匿名函数 

var f1=function(i1,i2){
    return i1+i2;
  }
   alert(f1(i1,i2));

 
 说明:声明一个函数,用f1委托指向它,后面在调用f1.把f1当做函数在用
 少见可行的用法:(直接声明一个匿名函数,立即使用)
 alert(function (i1,i2){return i1+i2;} (10,10));
 
10.JS面向对象基础 

JavaScript中没有类的语法,是用函数闭包(closure)模拟出来的。(类不是类,是对象)
     <script type="text/javascript" >
          function Person(name,age){   //声明一个函数,当成类用
              this.Name=name;
              this.Age=age;
              this.SayHello=function(){alert("你好,我是"+this.Name +",我"+this.Age+"岁了!")};
              //动态声明SayHello方法,指向匿名函数
          }
          var p1=new Person("tom",20);
          p1.SayHello();
      </script>

 
11.Array对象 

在Javascript中,array是一个动态数组,无需预先定义大小,是动态的
  求一个数组中的最大值:
  function GetMax(arr){           
     var max=arr[0];
     for(var i=1;i<arr.length;i++){
        if(arr[i]>max){
           max=arr[i];
        }
      }
     return max;
     }
     var arr1=new Array();
     arr1[0]=3;
     arr1[1]=2;
     arr1[2]=5;
          
     alert (GetMax(arr1));
  
  字符串之间用 “|”隔开:
  function myjoin(arr){
      if(arr.length<=0){            
        return "";
      }
      var s=arr[0];
      for(var i=1;i<arr.length;i++){
      s=s+"|"+arr[i];
      }
       return s;
      }
       var arr=new Array();
       arr[0]="tom";
       arr[1]="jerry";
       arr[2]="lily";
       alert(myjoin(arr));
  
  数组反向输出:
   function myReverse(arr){
              var temp;
              for(var i=0;i<arr.length/2;i++){
                  temp=arr[i];
                  arr[i]=arr[arr.length-i-1];
                  arr[arr.length-i-1]=temp;
              }          
             
          }
          var arr2=new Array();
          arr2[0]="3";
          arr2[1]="a";
          arr2[2]="8";
          arr2[3]="haha";
          alert(arr2);
          myReverse(arr2);
          alert(arr2);
  
 12.JS中Dictionary 
  Array,不仅是一个数组,还是一个Dictionary,还是一个Stack。
   var dict=new Array();
   dict["人"]="ren";
   dict["口"]="kou";
   dict["手"]="shou";
   alert(dict["口"]); //根据 key ,来取value
   for(var k in dict){  //JS中没有foreach,通过for的语法,遍历key
     alert(k);
   }

13.Array 的简化声明 

1)普通数组初始化:
  var arr=[3,5,6,8,3,2];
  2)字典风格的简化创建方式:
   var arr={"tom":30,"jim":20};

14.数组,for及其他 

//获得对象所有的成员,为什么可以获得呢?对象的成员就是以对象的key的形式出现的
  for(var e in document){
     alert(e);
  }