您的当前位置:首页正文

JavaScript学习笔记(1)基础知识

2024-11-10 来源:个人技术集锦

JavaScript学习笔记(1)基础知识

内容摘要:
基本语法
运算符
流程控制
函数
对象
数组

一.脚本语言JavaScript
    脚本语言是一种解释性的语言,脚本语言不需要编译,他们一般需要解释器才能运行,
    JavaScript是一种脚本语言,它可以被嵌入HTML的文件之中。通过JavaScript可以做到响应用户的需求事件(如表单的输入)。

二.JavaScript的基本语法
1.JavaScript脚本代码的位置
    ·放置在<script></script>标签对之间.
      <script language="javascript">
         <!--
            alert(new Date());
         -->
      </script>
    ·放置在一个单独的文件中
      html文件内容:
      <html>
         <script src="script.js" language="javascript"></script>
      </html>
      script.js文件内容:
      alert(new Date());
    ·将脚本程序代码作为属性值.
      <a href="javascript: alert(new Date());">javascript</a>
      <input type=button value=test οnclick="alert(new Date())">

2.保留关键字
    abstract,boolean,break,byte,case,catch,char,class,const,continue,default,do,double,else,
    extends,false,final,finally,float,for,function,goto,if,implements,import,in,instanceof,
    int,interface,long,native,new,null,package,private,proteted,public,return,short,static,
    super,switch,synchronized,this,throw,throws,transient,true,try,var,void,while,with

3.标识符
    标识符是指JavaScript中定义的符号,例如:变量名、函数名,数组名等.
    标识可以由任意顺序的大小写字母、数字、下划线和美元符号组成,但标识符不能以数字开头,不能是保留关键字。
    合法的标识符举例: indentifier、username、user_name、_userName、$username
    非法的标识符举例: int、98.3、Hello World

4.表达式与注释
    JavaScript大小写敏感
    每条功能执行语句的最后必须用分号结束,每个词之间用空格、制表符、换行符或大括号、小括号这样的分隔符隔开.
    JavaScript程序注释:  /*...*/中可以嵌套//注释,但不能嵌套/*...*/

5.基本数据类型与常量
    常量
    ·整型常量
        十六进制以0x或0X开头,例如: 0x8a
        八进制以0开头,例如: 0123
        十进制的第一位不能是0(数字0除外),例如: 123
    ·实型常量
        12.32、193.98、5E7、4e5等.
    ·布尔值:
        ture和false
    ·字符串常量
        "abc"、"a"
        字符串中的特殊字符,需要以反斜杠(\)后跟一个普通字符来表示,例如: \r、\n、\t、\b、\'、\"、\\
    ·null常量
    ·undefined常量

    变量
    ·变量:
        定义一个变量,系统就会为之分配一块内存,程序可以用变量名来表示这块内存中的数据.
    ·声名变量:
        使用var关键字,例如: var name;
    ·变量赋值
        声名变量的同时可以为其赋值,例如: var name = "zhangsan";
        对已赋值的变量赋予一个其他类型的数据,例如: name = 123;
        可以不事先声明变量而直接使用,例如: x = 1234;

6.运算符
    算术运算符
       +  加法或正值运算符,还能实现字符串连接.
       -  减法或负值运算符
       *  乘法运算符
       /  除法运算符
       %  模运算符,求余数
       ++ 自增,将变量加1后再将结果赋给这个变量. ++x:先赋值再自增,x++:先自增再赋值.
       -- 自减,将变量减1后再将结果赋给这个变量.   
    赋值运算符
       =  赋值
       += 将变量与所赋的值相加后的结果再赋值给该变量.
       -= 将变量与所赋的值相减后的结果再赋值给该变量.
       *= 将变量与所赋的值相乘后的结果再赋值给该变量.
       /= 将变量与所赋的值相除后的结果再赋值给该变量.
       %= 将变量与所赋的值求模后的结果再赋值给该变量.
    比较运算符
       >  大于
       <  小于
       >= 大于等于
       <= 小于等于
       == 等于
       != 不等于
    逻辑运算符
       && 逻辑与
       || 逻辑或
       !  逻辑非
    位运算符
       &  与运算符,两个位都为1,结果才为1,否则为0
       |  或运算符,两个位都为0,结果才为0,否则为1
       ^  异或运算符,两个位不同,结果才为1,否则为0
       >> 右移,二进制位右移n位,左边移空部分补上原来的最高位值,相当于除以2的n次方
       << 左移,二进制位左移n位,右边移空部分补0,相当于乘以2的n次方
       >>> 二进制位右移n位,左边补0,

7.程序流程控制
    顺序结构
    if条件选择语句
       ·if(条件语句){执行语句}
          多学两招: if(x == null)或if(typeof(x) == "undefined")可以简写成if(!x).
       ·if(条件语句){执行语句块1} else{执行语句块2}
          多学两招: 变量 = 布尔表达式?语句1:语句2,例如: var y = x>0?x:-x;
       ·if(条件语句1){执行语句块1} else if(条件语句n){执行语句块n} else{执行语句块n+1}
    switch选择语句
       switch(表达式)
       {
          case 取值1:
            语句块1
            break;
          ...
          case 取值n:
            语句块n
            break;
          default:
            语句块n+1
            break;
       }
    while循环语句
       while(条件表达式语句)
       {
          执行语句块
       }
    do while语句
       do
       {
          执行语句块
       }while(条件表达式语句);
    for循环语句
       for(初始化表达式;循环条件表达式;循环后的操作表达式)
       {
          执行语句块
       }
    break与continue语句
       break:
       st:while(true)
       {
          while(true)
          {
             break st;
          }
       }
       continue:跳过本次循环进入下一轮循环.

8.函数
    函数的定义与调用
        function 函数名 (参数列表)
        {
           程序代码
           return 表达式;
        }
    函数的调用
       ·函数名(参数1,参数2,...)
       ·变量 = 函数名(参数1,参数2,...)
       ·在程序中直接使用返回结果:  alert("sum=" + square(2,3));
    全局变量与局部变量
    参数个数可变的函数
       在函数内部使用arguments对象来访问调用程序传递的所有参数.
       function testparams()
       {
          var params = "";
          for(var i=0;i<arguments.length;i++)
             params = params + "" + arguments[i];
          alert(params);
       }
       testparams("abc",123);
    创建动态函数
       var varName = new Function(argument1,...lastArgument);
       所有的参数都必须是字符串类型,最后的参数必须是这个动态函数的功能程序代码.例
       var square = new Function("x","y","var sum;sum=x*x + y*y;return sum;");
    Javascript的系统函数
       ·encodeURI: 返回对一个URI字符串编码后的结果.
       ·decodeURI: 将一个已编码的URI字符串解码成最初始的字符串并返回.
       ·parseInt(numString,[radix]): 将一个字符串按指定的进制转换成整数.
       ·parseFloat: 将一个字符串转换成对应的小数.
       ·isNaN: 用于检测parseInt和parseFloat方法的返回值是否为NaN.
       ·escape: 返回对一个字符串进行编码后的结果字符串.
       ·unescape: 将一个用escape方法编码的结果字符串解码成原始字符串并返回.
       ·eval: 将其中的参数字符串作为一个JavaScript表达式执行.

9.对象
    对象与对象实例
       ·对象中所包含的变量就是对象的属性
       ·对象中所包含的对属性进行操作的函数就是对象的方法
       ·对象的属性和方法都叫对象的成员
       ·对象是对某一类事物的描述,是抽象上的概念,而对象实例是一类事物中的具体个例.
       ·能够被用来创建对象实例的函数就叫做对象的构造函数,只要定义了一个对象的构造函数,就等于定义了一个对象。
         使用new关键字和对象的构造函数就可以创建对象实例,语法格式如下:
         var objInstance = new ObjName(传递给该对象的实际参数列表);
       ·成员变量访问: 对象实例.成员变量 或 对象实例["成员变量"]
         <script>
            function Person()
            {
            }
            var person1 = new Person();
            person1.age = 18;
            person1.name = "zxx";
            function sayFunc()
            {
               alert(person1.name + ":" + person1.age);
            }
            person1.say = sayFunc;
            person1.say();
         </script>
    构造方法与this关键字
       ·为一个对象实例新增加的属性和方法,不会增加到同一个对象所产生的其它对象实例上.
       ·所有的实例对象在创建后都会自动调用构造函数,在构造函数中增加的属性和方法会被增加到每个对象实例上.
       ·对象实例是用new关键字创建的,在构造方法中不要有返回结果的return语句.
       ·调用对象的成员方法时,需要使用"对象实例.成员方法"的形式,很显然,用作成员方法的函数被调用时,一定伴随有某个对象实例.
         所以,this关键字一般只在用作对象成员方法的函数中出现.
         <script>
            function Person(name,age)
            {
               this.age = age;
               this.name = name;
               this.say = sayFunc;
            }
            function sayFunc()
            {
               alert(this.name + ":" + this.age);
            }
            var person1 = new Person("张三",18);
            person1.say();
         </script>
    函数中参数传递,在函数中修改参数值的情况
       ·基本类型以值传递参数
       ·对象实例以引用传递参数

10.Javascript的内部对象
    对象分类
       ·动态对象
          使用"对象实例名.成员"的格式来访问其属性和方法.
       ·静态对象
          直接使用"对象名.成员"的格式来访问其属性和方法.
    内部对象
       ·Object对象
          Object对提供了一种创建自定义对象的简单方式,不需要程序员再定义构造函数.
          var person = new Object();
       ·String对象
          ·length属性: string.length
          ·anchor方法: string.anchor("para1")效果: <A NAME="para1">string</A>
          ·big方法: string.big()效果: <BIG>string</BIG>
          ·bold方法: string.bold()效果: <B>string</B>
          ·fontcolor方法: string.fontcolor("red")效果: <FONT COLOR="red">string</FONT>
          ·link方法: string.link(URL)效果: <A HREF="URL">string</A>
          ·charAt方法: 获取索引位置的字符. 例string.charAt(3).
            注意: 一个字符串中的第一个字符的索引位置为0.
          ·charCodeAt方法: 获取索引位置的字符的unicode编码. 例string.charAt(3).toString(16).
          ·indexOf方法: 获取字符串的索引位置: string.indexOf("substring");
          ·lastindexOf方法: 获取字符串的索引位置,从后向前搜索
          ·match,search方法
          ·replace,split方法
          ·slice方法
          ·substr,substring方法
       ·Math对象
          ·Math对象静态对象,不能使用new关键字创建对象实例,应直接使用"对象名.成员"的格式来访问其属性或方法.
            例如:var num = Math.random();
       ·Date对象
    toString方法
       toString方法是JavaScript中的所有内部对象的一个成员方法,它的主要作用就是将对象中的数据转换成某种格式的字符串来表示,具体的转换方式取决于对象的类型.

11.对象专用语句
    with语句
    for...in语句

12.数组
    数组列表
     ·数组列表用于表示一组数据的集合,它由一对方括号包围,列表中的每个元素用逗号分隔,数组元素可以是任意类型的数据(包括其他数组).
     ·对于每个数组变量,都有一个length属性,表示该数组中元素的个数.
     ·使用"数组变量名[索引号]"的格式来访问每个数组元素。数组列表中的第一个元素的索引号为0.
     ·数组列表的每个元素既可以是有效的JavaScript表达式,也可以为空,空元素的值为undefined.
     ·熟组元素本身又是数组,这就叫数组的数组.使用"数组变量名[子数组索引号][子数组中的元素索引号]"的格式来访问数组的数组中的元素.
     var arr = ["zs",123,'li',3.5];
     for(var i=0;i<arr.length;i++)
     {
        alert(arr[i]);
     }

    Array对象,三种构造方法形式:
     ·Array()
     ·Array(4)
     ·Array(3.5,"abc",3)
    程序示例:
       var x,str = "";
       var arr = new Array();
       arr[0] = 3.5;
       arr[1] = "abc";
       arr[2] = 3;
       arr.sort();
       for(x in arr)
       {
          str = str + x + ":" + arr[x] + "\n";
       }

显示全文