JavaScript语法

1. 变量的定义和作用域

  var a = 1;   类型为Number

  var a = "1";   类型为String

  Number和String都是JS内置的对象。

  作用域: 在函数外面定义--全局; 在方法内部定义--在方法体内有效。

  变量是弱类型的,整数与字符串相加得到字符串。

  不区分单引号和双引号;

2.语句、代码和代码块

  JavaScript是发出的指令。每行句尾可以加上分号,多句同一行需要用分号隔开。代码块是用来更好的组织代码的。代码块使用花括号包裹。

3.注释

  单行注释://

  多行注释:/*开头,*/结尾

4.运算符

 1) 算术符号:+、-、*、/、%(取余,保留整数)、++、--

  说明:/除不尽有小数,能除尽为整数。JS不区分整数小数?

  2)赋值运算符:=、+=、-=、*=、/=、%=

  3)比较运算符:==、===(全等,值和类型)、!=、>、<、>=、<=

  4)逻辑运算符:&&、||、!

  5)条件赋值: ? :  

   variablename=(condition)?value1:value2 
5.分支语句

  1)if...else...   if...else if...else

  2)switch...case...

  switch():判读的类型无限制。c中就只能是int型和char('a')型。

  default不匹配条件时的操作。

6.循环语句

  1)for(var a = 0; a < 10; a++)

  2)while(a < 10) { a++ } ;       do { a-- } while(a>0)

   break:退出循环; continue:跳到下次循环。

  3) for/in - 循环遍历对象的属性

var person={fname:"John",lname:"Doe",age:25};
for (x in person)
{
      txt=txt + person[x];
}
7.函数

<script>  
        function goToUrl(strUrl)  
        {  
            location.href = strUrl;  
        }  <pre name="code" class="html"><script>

 

   1) 函数需要返回值时,用return即可。

   2) 函数可以在HTML事件/ FORM / JavaScript 中被调用,如:

   a. HTML元素事件回调:       <body οnlοad="goToUrl('http://www.baidu.com')" >   b. FORM元素事件回调       <select name="somelist" οnchange="onSomeThingChanged()">

   c. 超链接目标

       <a href="javascript:goToUrl('www.baidu.com')" > go </a>

   d. 直接在JavaScript中调用       <script>           goToUrl(”www.baidu.com");       </script>

8. 类

     一般的JavaScript是不需要使自定义类,不会这么复杂。难调试,不便阅读。如果一定要写什么复杂的功能,如菜单树之类的,就得写一点类来完成了。

    1) 类定义

     a. 不带参数

<script>  
    function SampleClass()  
    {  
        // 变量变量定义  
        this.nId = 10;  
          
        // 成员函数定义  
        this.plusId = function (nPlus)  
        {  
            return this.nId + nPlus;  
        }  
    }  
</script> 
    b. 带参数

    function MenuItem(l, h, t)  
    {  
        this.label = l;  
        this.href = h;  
        this.target = t;  
          
        this.toHtml = function()  
        {  
            var html = "<a href='" + this.href + "' ";  
                  
            if(this.target != null)  
                html += (" target='" + this.target + "' ");  
                  
            html += " >" + this.label + "</a>";              
            return html;  
        }  
    }  

   2)创建类的实例
      var item = new MenuItem("haha", "http://www.baidu.com", null);

   3)类需要注意

    a. 在成员函数里引用成员变量,一定要加this.,不然引用不到

    b. 成员函数如果想返回值,就用return,想return什么类型都不必事先声明,直接return就好

    c. 对于学习C++和Java的程序员来说,要明白var  p = new SomeClass();这句中的new其实就是创建一个对象并返回其指针

    d. 考虑使用Object类

9. Object类

     大多数情况下都不需要自己声明一个类,可以直接使用Object类来定义一个结构,而无需事先声明这个结构的形式。

function createObject()  
{  
    var obj = new Object();  
    obj.x = 10;  
    obj.y = 11;  
    return obj;  
} 
    这个函数随意的创建了一个object,为其添加成员 x, y,并没有通知任何人(无prototype声明)。而使用者也是直接就可以调用其 o.x , o.y
<script>  
    var o = createObject();  
    document.writeln("x=" + o.x + ", y=" + o.y);      
</script> 
10. 数组Array

    <script>  
        // 创建  
        var a  = new Array();  
        // 遍例  
        for(var i=0; i<a.length; i++)  
        {  
            var e = a[i]; 
        }  
        // 添加  
        var item = new MenuItem("000");  
        this.itemArray.push(item);  
    </script>  
数组作为成员变量

function Menu()
{  
    this.itemArray = new Array();
   
    this.addItem = function(l, h, t)
    {  
        var item = new MenuItem(l,h,t);  
        this.itemArray.push(item);  
    };                  
} 
 1) 添加元素

  push 方法将新元素添加到一个数组中,并返回数组的新长度值。
  arrayObj.push([item1 [item2 [. . . [itemN ]]]])
  参数:
           arrayObj--必选项。一个 Array 对象。  
           item, item2,. . . itemN--可选项。该 Array 的新元素。  
  说明:
        push 方法将以新元素出现的顺序添加这些元素。如果参数之一为数组,那么该数组将作为单个元素添加到数组中。如果要合并两个或多个数组中的元素,请使用 concat 方法。

var arr = new Array(0,1,2,3,4); 
// 参数是一个或多个 
var len = arr.push(5,6); 
//len = arr.push(7); 
for(var i=0;i<arr.length;i++){ 
    alert(arr[i]); 
}

  2) 删除元素

   pop 方法

    移除数组中的最后一个元素并返回该元素。
    arrayObj.pop( )
    必选的 arrayObj 引用是一个 Array 对象。
    说明
    如果该数组为空,那么将返回 undefined。

   shift 方法

    移除数组中的第一个元素并返回该元素。
    arrayObj.shift( )
    必选的 arrayObj 引用是一个 Array 对象。
    说明

    shift 方法可移除数组中的第一个元素并返回该元素。   

var arr = new Array(0,1,2,3,4); 
var remove = arr.pop(); 
alert(remove); 
alert(arr.length);
  splice 方法

    从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。
    arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])
    参数:
            arrayObj--必选项。一个 Array 对象。   
            start--必选项。指定从数组中移除元素的开始位置,这个位置是从 0 开始计算的。
            deleteCount--必选项。要移除的元素的个数。
            item1, item2,. . .,itemN--必选项。要在所移除元素的位置上插入的新元素。
    说明:

            splice 方法可以移除从 start 位置开始的指定个数的元素并插入新元素,从而修改 arrayObj。返回值是一个由所移除的元素组成的新 Array 对象。

            如果你不想增加新的元素进去,那么不要传递第三个参数即可!

var arr = new Array(0,1,2,3,4); 
// 删除从2开始的两个元素,位置从0开始 
// 返回移除元素的数组 
var reArr = arr.splice(2,2); 
// 可以在移除元素的位置替换新的元素进去 
//只是从移除开始位置进行增加新元素,如果你移除两个元素,你完全可以增加10个新元素进去 
//var reArr = arr.splice(2,2,6,7,8,9); 
for(var i=0;i<arr.length;i++){ 
    alert(arr[i]); 
}

   concat 方法 (Array)

   返回一个新数组,这个新数组是由两个或更多数组组合而成的。
    array1.concat([item1[, item2[, . . . [, itemN]]]])
   参数:
           array1 --必选项。其他所有数组要进行连接的 Array 对象。
           item1,. . ., itemN--可选项。要连接到 array1 末尾的其他项目。
   说明:
          concat 方法返回一个 Array 对象,其中包含了 array1 和提供的任意其他项目的连接。
          要加的项目(item1 … itemN)会按照从左到右的顺序添加到数组。如果某一项为数组,那么添加其内容到 array1 的末尾。如果该项目不是数组,就将其作为单个的数组元素添加到数组的末尾。

         以下为从源数组复制元素到结果数组:

         对于从正被连接到新数组的数组中复制的对象参数,复制后仍然指向相同的对象。不论新数组和源数组中哪一个有改变,都将引起另一个的改变。
         对于连接到新数组的数值或字符串,只复制其值。一个数组中值有改变并不影响另一个数组中的值。
var arr = new Array(0,1); 
var arr2 = new  Array(3,4); 
var arr = arr.concat(arr2); 
for(var i=0;i<arr.length;i++){ 
    alert(arr[i]); 
}


执行顺序与生命周期

   1) 从上到下依次执行/解析,调用一个function时,必须保证该function已经被解析/声明了。这就是一般要把function定义在<head>的原因。

   2) 所有的function与变量只在本页面内有效,当离开页面后,新的页面内无法访问上一页内声明的变量或函数。如果一定要访问,可以使用Cookie也存一下,到下一页再读出来。


 



  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值