javascript学习一、js的初步了解

时间:2021-07-30 00:17:31

1、javascript的简介:
    *javascript 是一种基于对象和事件驱动的语言,主要应用于客户端。
        -- 基于对象:
              ** 提供了很多对象,可以直接使用。
        --事件驱动:
            ** html做的网页是静态效果,javascript做的是动态效果。
        --客户端:
            主要是指浏览器。

    *js的特点:
        (1)交互性:
            --信息的动态交互。
        (2)安全性:
            --s不能访问本地磁盘中的文件。
        (3)跨平台性:
            --与java不同,js直接使用 浏览器跨平台。

    *javascript和java之间的区别:(没有任何关联)

        (1)java是sun公司(现在是oracle)发布
            js是网景公司发布。
        (2)javascript是基于对象的,java是面向对象的。
        (3)java是强类型的语言, js是弱类型的语言。
        (4)js是解析就可以执行, java需要先编译再执行。

    *js的组成
        有三部份
          (1)ECMAScript
              --ECMA :欧洲计算机协会,   由其为js指定语法。
          (2)BOM
              --broswer object model : 浏览器对象模型。
          (3)DOM
              --document object model :文档对象模型。



2、js和html的结合方式(两种)
    第一种:
        --使用一个标签:
            <script type="text/javascript" > js代码 </script>
    第二种:
        --引入外部文件:
            -- 创建一个 .js文件。
            -- <script type="text/javascript" src=" 外部文件地址 "> </script>
      注意: 在第二种中的script标签中不要写其他js代码了,不会被执行。

3、js的原始类型和声明变量
    ** java中有是八大基本数据类型 : byte short int long float double char boolean
      js中,只有五个原始类型:
        --string: 字符串
            *** var str = "abc";

        --number: 数字类型
            *** var num = 123;

        --boolean: true和false
            *** var falg = true;

        --null:
            *** 获取对象的引用,null用来表示引用为空,所有对象的引用都为 object
            *** var date = new Date();

        --undifined
            *** 定义一个变量,没有被赋值
                       *** var aa;

    ** typeof() ;查看当前变量的数据类型。
    ** alert() ; 在页面跳出一个对话框。
    ** document.write();直接想页面输出的语句(可以把括号内的语句输出到页面上)
                也可以输出html代码。

4、js的语句
    --在java里面的语句:
        ***if语句
        ***switch语句
        ***循环语句: for 、while、 do-while

    --在js里面也有这些语句
        ***if判断语句
     注意:  *****=: 赋值
          *****==:判断

        ***switch语句
            --java从1.7才开始支持 string,枚举类型,
            --js中所有类型都支持。
            --switch(a){
                    case 1:
                    break;
                    case 2:
                    break;
                    default:
                      ... ...
                  }
    --循环语句: for 、 while 、 do-while:与java中的用法一致。

      其中, i++ 和 ++i 和java中是一样的。



5、js的运算符
    **    += : x+=y;  等于: x=x+y;

    **js里面不区分整数和小数
        var j = 123;
        alert(j/1000*1000);
      --java中,结果为:0
      --js中, 结果为:123

    **js中的字符串的相加和相减的操作
        var str = "123";

        ***在相加的时候,做的是字符串的连接。
        ***在相减的时候,做的是减法运算。

        如: alert(str+1)//结果为1231.
               alert(str-1)//结果为122.

      住意:当str不是一个数字的时候,减法运算会提示错误。
          var str = "abc";
          alert(str-1);//结果为:提示NaN: 表示这不是一个数字。

    **boolean也可以进行数学运算
        ***如果设置成 true ,进行数学运算的时候,相当于值为:1
        ***如果设置成 false ,进行数学运算的时候,相当于值为: 0

    **   == 和 === 的区别
          他们都是用来做相等判断的,
        *** == 比较的是 值
        *** === 比较的是 值 和 类型
          如: var i = "5";
              i==5 为: true
              i===5 为: false。


6、九九乘法表的练习(输出到页面)
    *使用: document.write()输出到页面上。
      document.write可以输出变量,也可以输出html代码(加双引号)
      document.write里面是双引号,里面的标签属性必须使用双引号。


7、javascript的数组
    --与java不同,js是弱类型的语言,数组中可以存放不同类型的值。
    --java数组定义: int[] arr = {1,2,3};

    --js数组定义方式(三种):
        第一种: var arr = [1,2,3] || var arr = [1,"2",true]
        第二种: 使用内置对象 Array,
            var arr = new Array(5); //定义了一个长度为5的数组。
            arr[0] = "1"; arr[1] = 2; arr[2] = true;

        第三种: 使用内置对象 Araay,
            var arr = new Array(3,"4",true);//定义一个数组,其中值为:3,4,true

    --数组中有一个属性 length: 获得数组的长度。

    --数组的长度是可变的。(与java数组进行区分)

    --数组可以存放不同类型的值(与 java 数组进行区分)


8、js中的方法

    **在java中定义方法:
        修饰词 返回值类型 方法名(参数列表){
          方法体;
          返回值;
        }
          public int add(int a, int b){
              int sum = a+b;
              return sum;
          }

    **在js中定义方法,有三种方式:
        第一种方式:
          ***使用一个关键字 function
          ***function 方法名(参数列表){
                方法体;
                返回值(视需求,可有可无);
            }
              for example:
                    function add(a ,b,c){
                      var sum = a+b+c;
                      return sum;
                    }
              (调用方法名,使用定义的方法)

    第二种方式:
        匿名方法。
        *** var 变量名 = function(参数列表){
                方法体;
                返回值;
          }
            如:
              var add = funtion(a,b){
                  var sum = a+b;
                  return sum;
                }
              (之后使用变量名调用方法)

    第三种方式:
        ***动态方法。
        ***使用一个js的内置对象 Function
          var 变量名 = new Function("参数列表","方法体 和 返回值"); (注意,参数和方法体之间是逗号)
              var add = new Function("a,b", "var sum=a+b; return sum");
                (之后使用变量名调用函数)
            ****注意,此方式中,可以预先定义好参数列表,和方法体与方法名,在定义方法的时候直接传进来。

9、js的全局变量, 和局部变量
    **全局变量: 在script标签里面定义的一个变量,这个变量在页面中js部分都可以使用
          --在方法外部使用, 在方法内部使用, 在另一个scipt标签里使用。

    **局部变量: 在方法内部定义的一个变量,只能在在方法内部使用。
          --如果在方法外部使用,则会提示出错。
            --SCRIPT5009: "nn"未定义
             12-js的局部变量.html,行18 字符3

    **ie(火狐)自带了一个调试工具,ie8及其以上版本,按F12,在页面下方出现调试栏。

10、script标签可以放的位置

    **按照格式来说, script标签可以放在任何位置(head,body,甚至是html外)

    **但是,在开发中,为了能顺利和htnl代码结合,最好放在:</body> 的后面。

        原因:如果script语句中要使用body中的 (如<input type="text"/>中的)值 ,
             而script本shent在head中,那么就会出问题,
              html是从上到下进行解析的,此时,script中要使用body中
             的值,但是还没有解析到body,就拿不到这个值。
        所以:建议script放在</body>得后面。

11、js方法的重载

    **js中没有重载,在有多个同名但是不同参数的方法时,按照解析顺序,调用方法处使用
      其上面的离其最近的 定义的方法。(如果参数不合,就会报错: NaN)