天天看点

黑马程序员—Javascript基础

---------------------- Windows Phone 7手机开发 、.NET培训、期待与您交流!----------------------

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);

 }

---------------------- Windows Phone 7手机开发 、.NET培训、期待与您交流!----------------------

详细请查看:http://edu.csdn.net/heima/

继续阅读