黑马程序员---JavaScript基础摘要

   JavaScript是基于对象和事件的脚本语言.JS是Netscape公司的产品,是弱类型语言非严谨;运行在客户端.
    特点:1.安全性(不允许直接访问本地硬盘),它可以做的就是信息的动态交互.
          2.跨平台性(只要是可以解释JS的浏览器都可执行,和平台无关)
    JavaScript需要被浏览器所解释执行,就必须将代码和html相结合.如下两种方式
       a.通过定义<script>标签将JS代码存其中,并指定type属性方便浏览器启动指定的解析引擎.
       b.还可通过<script>标签,使用src属性连接一个指定的js文件进来.
            例: <script src="Test.js" type="text/javaScript"></script>//规范中script标签中必须加入type属性;
    JavaScript基本语法:
        1.变量
                通过var关键字定义变量,该变量可以赋予不同类型的常量,弱类型不用指定具体的的数据类型.JS中没有具体数据类型的限制,使用时要注意.(如下代码)

1       var x=3;//可以是int
2       x="abc";//可以是字符串
3       x=tue;  //可以是布尔
4       x=3.52;//可以是double,没有类型可言所以说JavaScript是弱类型语言,什么类型都可以存放.
5      //undefined:特殊的常量,当变量没有初始化就被使用该变量的值就是未定义.

        2.语句(与c#语句格式相同)
              a.判断结构if语句
                      var y=3;
                      if(y==6) //可以进行比较运算
                      if(y=6) //可以进行赋值运算,而且可以同样进行判断,不报错.因为在JS中0就是false,非0就是true(通常用1表示),所以if(y=6)结果是true;
              b.选择结构(switch语句)
              c.循环结构(while,do...while,for语句)使用逻辑运算符进行布尔表达式连接的时候,需要短路与和短路或:&& ||.因为JS中,非0即为true;0为false,非null为true,null为false.
              d.JS特有的语句:
                 with(对象){}:可以确定对象所使用的范围.在范围中,可以直接使用指定对象的属性和行为,而不用对象点的形式调用,简化了对象的操作.for(变量 in 对象){}:可以对对象的属性及行为进行遍历.如下代码

1                 var y = new Date(); //创建时间对象;
2                 with (y) {
3                      //弹出当前年,月,日,星期对话框.
4                     alert(getYear()+""+(getMonth()+1)+""+getDate()+""+"星期"+getDay());//不用对象点的形式调用
5                 }

             e.数组
                     对于JS的数组特点在于,数组的长度是可变的,相对与c#中的集合,该数组中可以存放的元素类型是可以不同的.
                     定义格式:如下代码

1                          var arr=[3,true,"abc",3.56];//相当于ArrayList集合;存放的数据类型是object.
2                          arr[4]="hong";//动态添加元素
3                          for(var i=0;i<arr.length;i++){
4                              alert(arr[i]); //操作形式和c#一样,都是通过for进行遍历,同是也使用了指针思想.
5                          }

       3.函数
                     通过function关键字定义函数
                     a.一般函数           
                           格式:function函数名(形式参数...)
                                {
                                       执行语句;
                                       return 返回值;
                                       //通常提供代码复用可以将代码封装成函数.两个明确:@>明确该功能实现后的结果.@>该功能在实现过程中是否有未知内容参与运算.
                                }
                           函数是多条执行语句的封装体,只有被调用才会执行.调用有参数的函数,但没有给其传值函数一样可以运行,或者调用没有参数的函数,给其传值该函数也一样运行.说的简单点,只要写了函数名后面跟了一对小括号该函数就会运行.
                        function Demo() //定义函数
                               {
                                  alert(arr.length) //在函数中有一个参数数组对象(arr)该对象将传递的参数都封装在一个数组中
                               }
                               Demo("hello",365,true); //调用函数 
                               那么弹出的对话框结果是3,如果想得到所有的参数值,可以通过for循环遍历该数组.
                               for(var x=0;x<arr.length;x++)
                               {
                                  alert(arr[x]);
                               }
                               为了增强阅读性最好按照规范,按定义好的形式参数传递实际参数,函数在调用时的其他写法:
                               var show=Demo(); //show变量接收Demo函数的返回值
                               var show=Demo; //这种写法是可以的,意为show和Demo代表同一个函数.那么该函数也可以通过show()的方式运行.

                     b.动态函数
                           通过JS的内置对Function实现
                           例:var demo=new Function("x","y","alert(x+y);"); //动态函数的定义方式
                              demo(6,9); //调用函数
                           如同:function demo(x,y){alert(x+y);} //一般函数的定义方式
                                demo(6,9); //调用函数
                           动态函数的特点:可以将参数列表和方法体作为参数传递.
                     c.匿名函数
                           一般函数的简写形式function(){}
                           匿名函数通常可以用于事件的处理 如下:
                           window.onload=function(){alert("onload over");}
            4.在函数使用时需要注意的部分:
              function Show(){return "show run";}
              var method=Show();
              var method=Show;
              两句代码都是正确的,第一句表示的是Show()方法运行后的结果赋值给method变量,第二句表示的是将Show指向的对象地址赋值给method,那么method也指向了该对象.此时就可以通过method的形式来调用这个Show().
              JS可以通过对象形式将数据进行封装
              首先对象进行描述,通过函数来完成.
               function Person(name,age) //相当于c#中的构造函数
              {
                  this.name=name;
                  this.age=age;
               }
               var p=new Person("zhangSan",20); //为对象p属性赋值
               alert(p["name"]+"..."+p.age)   
               p.show= function() //为对象p添加方法
               {
                  alert("show hello");
                }
            5.JavaScript中已定义好的一些对象String,Math,Array,Function等这些对象都有一个属性叫做prototype原型,prototype可以通过引用给已有的对象赋予一些新的功能,那么在使用该对象时;可以直接调用定义好的新功能.如下示例
              function GetMax() //定义一个求数组中最大数的方法
              {
                 var max=0;
                 for(var x=1;x<this.length;x++)
                 {
                    if(this[x]>this[max]) //用角标的方式比较
                          max=x;
                 }
                  return this[max]; //返回最大数
              }
              var arr=[2,5,1,9,-3,18];
              arr.sort(); //直接调用Array对象的sort()方法对数组进行排序,那么可不可以像调用sort()方法一样调用GetMax()方法呢?这时就需要将GetMax()方法添加到Array对象中,才能直接调用.
              Array.prototype.GetMax=GetMax; //通过prototype属性将方法GetMax()Array数组对象中.
              var y=arr.GetMax(); //定义变量存放arr对象中的方法
              alert("max="+y); //弹出最大值
            6.常见的全局方法
               parseInt(numstr,[radix]); //将数字格式的字符串转成整数.如果指定了基数,那么numstr就会按照执行基数进行转换.
               var num=parseInt("110",2); //表示"110"这个字符串会按照二进制进行转换.
               alert("num="+num); //结果num=6;
               var m=6;
               alert(m.toString(2)); //获得8对应的二进制表现形式(110)
          

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。