首页 > 代码库 > 学习之Javascript基础

学习之Javascript基础

1)HTML只是描述网页长相的标记语言,JavaScript是一种在浏览器端执行的语言,简称为JS,JavaScript是解释性语言,无需编译就可以随时运行,没有语法错误的部分还是能正确运行。

2)VS2010中有Javascript、JQuery的自动完成功能

3)JS点儿不出来的成员也许可用,点儿处理的成员也许不可用

4)VS2008的HTML编辑器中触发JavaScript自动完成:Ctrl+J

5)JS标签:

  <script type="text/javascript">

          alert(new Date().toLocaleDateString());

      </script>

    //alert类似于messagebox的用法

  Javascript代码放到<script>标签中,script标签可以放到<head><body>等任意位置,且可用有不止一个标签,alert函数是弹出消息窗口,new Date()是创建一个Date类的对象,默认值就是当前时间。

  放到<head>中的<script>在body加载之前就已经运行。

6)除页面中声明Javascript外,可将Javascript写到单独jscript文件中,然后在页面中引入:

  <script src=http://www.mamicode.com/”test.js” >

7)事件:Dom相关

  <a href="javascript:alert(‘hello‘)">Click</a>

     在body中触发js,可用超链接标签实现,点击超链接,注意alert中使用单引号,主要是为了方便和html集成,避免转义字符的麻烦,避免与外层的双引号冲突

   // 通过超链接的开头决定使用哪个网络协议,调用哪个程序,交由哪个引擎处理,同如下几种:thunder://    qq:     mailto:     ftp://     ed2k://

    // 只有超链接的href中的Javascript才需加”javascript:”,因为它不是事件,将之看做一种网络协议,交由js解析引擎处理。

8)JS:有null、undefined两种,null表示变量为空,undefined表示没有指向任何对象

9)Javascript是弱类型,只能通过var i=0声明变量。

  指向某个值后,即为该类型的变量,同一变量可指向任意的类型。

  不用var声明的变量为全局变量,不建议用。

  JS是动态类型的,var i=0;i=”a”;是合法的。

10)JS除错与调试:Internet选项中有禁用脚本调试,启用调试,以调试方式运行网页,设置断点,添加到监视。

11)Javascript中判断变量、参数是否初始化的三种方法:

    1> if(x==null){alert(“null”);}

    2> if(typeof(x)==”undefined”){alert(‘undefined’);}

    3> if(!x){alert(‘no x’);}//推荐使用此方法,变量为空或为0或未初始化

12)函数的声明:function add(i,j){return i+j;}

         不需要声明返回值类型、参数类型,以function开头;不像C#中那样要求所有路径都有返回值;没有返回值时会alert一个undefined

13)匿名函数:var f1=function(i,j){return i+j;}  alert(f1(1,2));         类似于C#中的匿名函数,JQuery中常用

14)Javascript中没有类的语法,是用函数闭包closure模拟出来的,JS中String、Date等类叫做对象,本质就是函数,创建过程为:

    function Person(name, age) {                       //声明一个函数,当成类用,叫做对象

              this.name = name;

              this.age = age;

              this.SayHello = function () {                            //动态声明,指向匿名函数

                  alert("Hello,this is " + this.name + ".I‘m " + this.age + " .");

              }

          }

          var p = new Person("Xscape", 23);// 此处若为:var p = Person("Xsc", 23);则p为undefined,因函数无返回值

          p.SayHello();

15)Javascript中的Array对象就是数组,是一个动态数组,无需预先制定数组大小,如下:

    var names = new Array();

            names[0] = "a";

            names[1] = "b";

            for (var i = 0; i < names.length; i++) {

                alert(names[i]);

            }

16)字符串数组中元素的反转,Javascript中有自带反转函数,另实现原理:将第i个和第length-i-1个进行交换

17)数组加|分割输出:Join函数(C#与JS中都有)

18)alert(Array)可以将数组中每个元素都打印出来,不是alert的功能,而是Array的ToString效果

19)JS的Array不仅是一个数组,还是一个Dictionary,还是一个Stack。

    var exam = new Array();

           exam["a"] = "A";

           exam["b"] = "B";

           exam["c"] = "C";

           exam["d"] = "D";

           alert(exam["a"]);

           alert(exam.a);

  Array的Key可以是汉字、字母等字符形式,类似Dictionary

  遍历Array的方法:for (var k in exam)  {alert(k);}  //用for实现的foreach语法,打印的是Array的Key,输出a等,而非A等

20)普通数组初始化:var arr={1,2,3,4};//key为0、1、2、3

   字典风格的创建:var arr={“li”:15,”wang”:20};

21)用for遍历得到JS中某个对象的所有属性和方法:

   for (var e in document) {   alert(e);  }//对象的所有成员都是以对象的key的形式出现的