JavaScript



1.什么是脚本程序和JavaScript
  ①什么是脚本程序
    <html>
      <script language="javascript">
          alert(new Date())
      </script>
    </html>
  ②JavaScript简介
    前身叫做LiveScript,是一种基于对象(Object)和事件驱动(Event Driven)、并具有安全性能的脚本语言
  ③JavaScript与JScript、ECMAScript的关系
    javascript与JScript基本一致(是两个公司的不同产品),ECMAScript是JavaScript和JScript的统一标准
2.JavaScript的基本语法
  1)脚本代码的位置
    ①放在<script></script>标签之间
      <script>
         var x = 3;
      </script>
      <script>
        alert(x);
      </script>
    放在多个<script>中的代码,和放在一个<script>中的代码是一样的,可以相互访问。
    ②放置在一个单独的文件中
      应用文件:<script src="script.js" language="javascript"></script>
    ③将脚本程序代码作为属性值
      <a href="javascript:alert(new Date());">javascript</a>
      <input type="button" οnclick="alert(new Date());"></input>
  2)javascript中的保留关键字
  3)javascript的基本语法
    ①JavaScript中的标示符
      标示符是指javascript中定义的符号,例如:变量名、函数名、数组名等。
      标示符可以由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,但是标示符不能以数字开头,不能是javascript中的保留关键字
    ②JavaScript严格区分大小写
    ③JavaScript程序代码的格式
      每条功能执行语句的最后必须用分号(;)结束,
      每个词之间用空格、制表符、换行符或大括号、小括号进行分隔开
    ④JavaScript程序的注释
      //单行注释符
      /* ... */多行注释符。可以嵌套单行注释符,但不能嵌套多行注释符
  4)基本数据类型
    ①整型常量
      十六进制以0x或0X开头,例如0x8a
      八进制必须以0开头,例如0123
      十进制的第一位不能是0(数字0除外),例如123
    ②实型常量
      12.32、193.909、5E4等
    ③布尔值
      true和false
    ④字符串型常量
      "anc cd"、'abc'、"a"、""
      字符串中的特殊字符,需要以反斜杠(\)后跟一个普通字符来表示 例如:\r、\n等
      字符串不能换行。可以使用+连接符
    ⑤null常量:值存在
    ⑥undefined常量:不存在
  5)变量
    ①定义一个变量,系统就会为之分配一块内存,程序可以使用变量名来表示这块内存中的数据
    ②声明变量要使用var关键字  例如 var name; name的默认值是undefined
    ③对已赋值的变量赋予一个其他类型的数据(数据类型的弱类型)
    ④不事先声明变量而直接使用也是可以的
3.运算符
  ①算术运算符
    + 加法运算符或正值运算符,可以用于字符串的连接
    - 减法运算符或负值运算符
    * 乘法运算符
    / 除法运算符 例如9/4=小数(而与java不同)
    % 求模运算符(求余)
    ++ 将变量值加1后再将结果赋给这个变量
       ++i与i++
    -- 将变量值减1后再将结果赋给这个变量
       --i与i--

  ②赋值运算符
    赋值运算符的作用是将一个值赋给一个变量,做常用的赋值运算符是"="
    还可以组合,+=、-=、*=、/=、%=

  ③比较运算符
    > 、 < 、>= 、 <= 、== 、!=
    注意:不要将比较运算符"==" 误写成 赋值运算符"="
   
  ④逻辑运算符
    && 、 || 、!

  ⑤位运算符
    & 、 | 、 ^(异或)、>> 、 <<

5.程序的流程控制
  ①switch选择语句
    switch(表达式)
    {
      case 取值1:
         语句1;
  break;
       case 取值n:
         语句n;
  break;
       default:
         语句n+1;
  break;
    }
    注:表达式支持javascript的所有类型(而java中只支持int,byte,short,boolean,char)
  ②while循环语句
    while(条件表达式语句){
      执行语句块;
    }
  ③do while语句
    do{
       执行语句块;
    }while(条件表达式语句)
    注:至少执行一次
  ④for循环语句
    for(初始化表达式;循环条件表达式;循环后的操作表达式){
      执行语句块;
    }
  ⑤break和continue
  ⑥if...else...
    if(){
 ...
    }
    注:if(x==null) 或 if(typeof(x) == 'undefined') 可以简写成if(!x)
   
    if(){
        ...
    }else{
        ...
    }
    注:变量 = 布尔表达式? 语句1:语句2;
   
    if(){
        ...
    }else if{
        ...
    }else{
        ...
    }
6.函数
  ①函数的作用及定义
     function 函数名(参数列表){
       程序代码;
       return 表达式;
     }
  
   ②对函数进行调用的几种方式
     函数名(参数列表)
     变量 = 函数名(参数列表)
     对于有返回值的函数调用,也可以在程序中直接使用返回的结果
   全局变量与局部变量

   ③参数个数可变的函数
     在函数内部使用arguments对象来访问调用程序的所有参数。
     定义函数时不指定参数列表
  
   ④创建动态函数
     var vaeName = new Function(arguments1,...,lastArgument);
     说明:
       所有的参数都必须是字符串型的,最后的参数必须是这个动态函数的功能程序代码
     例子:
       <script>
          var varName = new Function("x","y","var sum;sum = x*x+y*y;return sum;");
          alert(varName(2,3));
       </script>
   ⑤JavaScript中的系统函数
      encodeURI方法
        返回对一个URI字符串编码后的结果
        注:在java中与之对应的是URLEncoder.encode(String s,String enc)
      decodeURI方法
        将一个已编码的URI字符串解码成最初始的字符集并返回。
        注:在java中与之对应的是URLDecoder.decode(String s, String enc)
      parseInt方法
        将一个字符串按指定的进制转换成一个整数,语法格式为:parseInt(numString,[radix])
 如果没有指定第二个参数,则前缀为'0x'的字符串被视为十六进制,前缀为'0'的字符串被视为八进制,所有其他字符串都被视为十进制。
        如果不能完全转化,则转换前面能转化部分的字符串。
      parseFloat方法
        将一个字符串转换成对应的小数。
      isNaN方法
        用于检测parseInt和parseFloat方法的返回值是否为NaN
      escape方法
        返回对一个字符串进行编码后的结果字符串。
 所有空格、标点、重音符号以及任何其他非ASCII字符都用%xx编码替换,其中xx等于表示该字符的Unicode编码的十六进制数
 字符大于255的字符以%uxxxx格式储存
      unescape方法
        将一个用escape方法编码的结果字符串解码成原始字符串并返回。
      eval方法
        将其中的参数字符串作为一个JavaScript表达式执行。
7.对象
 
  ①对象定义
  <script>
    //构造方法
    function Person(){
    }
    //实例对象
    var person = new Person();
    //添加属性,可以无限的添加属性
    person.name = 'wzg';
    person.age = 23;

    //定义函数
    function sayFunc(){
        alert(person.name+';'+person.age);
    }

    //添加函数
    person.say = sayFunc;

    //调用函数
    person.say();

  </script>

  ②构造方法与this关键字
  <script>
  function Persion(name,age){
    this.name = name;
    this.age = age;
    this.say = sayFunc;
  }
 
  function sayFunc(){
    alert(this.name+'----'+this.age);
  }

  var person1 = new Person('wzg',15);
  person1.say();
  var person2 = new Person('hll',16);
  person2.say();

  </script>
 
  ③在函数中修改参数值的问题
   
    将基本数据类型的变量作为函数参数传递的情况:值传递
    <script>
      function changeValue(x){
        x= 5;
      }
      var x= 3;
      changeValue(x);
      alert(x);
    </script>
    将对象类型的变量作为函数参数传递的情况:引用传递
    <script>
      function Person(name){
        this.name = name;
 this.say = sayFunc;
      }

      function sayFunc(){
        alert(this.name);
      }

      function changeValue(person){
        person.name = 'wzg';
      }

      var person = new Person('wzzzzzz');
      person.say();
      changeValue(person);
      person.say();

    </script>

8.JavaScript的内部对象
  ①动态对象
    使用"对象实例名.成员"的格式来访问其属性和方法

  ②静态对象
    使用"对象名.成员"的格式来访问其属性和方法
 
  ③Object对象
    Object对象提供了一种创建自定义对象的简单方式,不需要程序员再定义构造函数。
    <script>
      function getAttribute(attr){
         alert(person[attr])
      }

      var person = new Object();
      person.name = '123';
      getAttribute("name");

    </script>

  ④String对象
    1)length属性:字符串中字符的长度
    var myString = new String("1234567");
    alert(myString.length);

    alert("123456789".length);
    2)产生对应的html标签:big、link等
      var myString = '123';
      alert(myString.big());
    3)charAt(index):返回对应索引的字符,索引从0开始,如大于索引则返回空
    4)charCodeAt():返回的结果是字符的unicode编码
      var myString = 'abc';
      alert(myString.charCodeAt(1));
    5)indexOf(str,index)方法
      从index位置开始查找,返回str在字符串中的位置,位置从0开始,从左到右,若没找到则返回-1
    6)lastIndexOf(str,index)方法
      从index位置开始查找,返回str在字符串中的位置,位置从0开始,从右到左,若没找到则返回-1
    7)match、search方法
      运用正则表达式
    8)replace、split方法
      替换和分解
    9)slice(index,endIndex)方法
      返回index和endIndex之间的字符,不包括endIndex的字符
    10)substr、substring方法
      返回子字符串substr(strat,length)、 substring(start,end)
          substring与slice方法一样
    11)toLowerCase和toUpperCase
      转换大小写

  ⑤Math对象(静态对象)
    属性:E:代表数学常数e,约等于2.718
          LN10:代表10的自然对数,约等于2.302
   LN2:代表2的自然对数,约等于0.693
   PI:代表数字常数π的值,约等于3.1415
   SQRT1-2:代表2的平方根分之一,约等于0.7.7
          SQRT2:代表2的平方根,约等于1.414
    方法:abs方法:返回数字的绝对值
          sin、cos方法:分别返回正弦、余弦值
   asin、acos方法:分别返回反正弦、反余弦值
   random方法:返回介于0和1 之间的伪随机数
  ⑥Date对象
    构造函数:Date()
              Date(dateVal):dateVal为自1970的毫秒值
              Date(year,month,day[,hours[,minutes[,seconds[,ms]]]])
    parse方法:
      分析一个表示日期时间的字符串,返回它所表示的时间值(自1970的毫秒值)
    toGMTString方法:
      返回Date对象实例所表示的日期的字符串形式,该字符串使用格林尼治标准时间
    getYear、getMonth、getDate、getDay、getHours、getMinutes、getSeconds、getMilliseconds方法
    getTime方法:返回自1970年1月1日0点0分0秒算起,至Date对象实例代表的时间为止的毫秒数

    注:getYear():当前年份-1900
        getFullYear():当前年份
  ⑦toString方法
    toString方法是
  ⑧对象专用语句
    1)with语句
      with(对象名称){
        执行语句块;
      }
      在多次使用某个对象的属性或方法,可以将对象名称放在with语句中
      在with中可以直接使用对象的属性和方法,而不用再使用对象名称
      var currDate = new Date();
 with(currDate){
     var year = getFullYear();
     var month = getMonth()+1;
     var day = getDay();
     alert(year+'年'+month+'月'+day+'日');
 }

    2)for...in语句
      for(变量 in 对象){
        执行语句;
      }
      将对象中的所有属性,依次赋值给变量
       function Person(){
    this.name = '1';
    this.age = '2';
 }
   
 var p = new Person();
 var str;
 for(str in p ){
   alert(str);
 }

9.数组
  ①数组列表
    数组列表用于表示一组数据的集合,它由一对方括号([])包围,列表中的每个元素用逗号分隔,
    数组元素可以是任意类型的数据(包括其他数组)
    例如:var arr= ['a','1','ds'];

    对于每个数组变量,都有一个length属性,表示该数组中元素的个数
    使用"数组变量名[索引号]"的格式来访问每个数组元素。
    数组列表的每个元素既可以是有效的javascript表达式,以可以为空,空元素的值为undefined。
    数组元素本身又是数组,这就叫数组的数组,例如:[['123','23',''asd],123]
    使用"数组变量名[子数组索引号][子数组中的元素索引号]"的格式来访问数组的数组中的元素

  ②用对象的方式实现数组
          function MyArray(){
      this.length = arguments.length;
   for(var i=0; i<this.length;i++){
     this[i] = arguments[i]
   }
    }

    var str="";
    var arr = new MyArray(4,3.5,'abc');
    for(var i = 0; i< arr.length ;i++){
      str+=arr[i]+'\n';
    }
    alert(str);
    ③Array对象
      1)三种构造函数:
        Array(); 创建一个空数组
        Array(length); 创建一个指定长度的数组
 Array(args....);创建一个指定内容的数组
        例子:
   var arr = new Array();
   alert(arr.length);
   arr[0]= 'a';
   arr[1]= 1324;
          alert(arr.length);

          arr.sort();
          var x,str = '';
   for(x in arr){
  str += x + ":"+arr[x] +'\n';
   }
          alert(str);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值