javaweb 之javascript 結合


1、javascript的簡介
    * 是基於對象和事件驅動的語言,應用與客戶端。
        - 基於對象:
            ** 提供好了很多對象,可以直接拿過來使用
        - 事件驅動:
            ** html做網站靜態效果,javascript動態效果
        
        - 客戶端:專門指的是瀏覽器

    * js的特點
        (1)交互性
            - 信息的動態交互

        (2)安全性
            - js不能訪問本地磁盤的文件

        (3)跨平台性
            - java里面跨平台性,虛擬機
            - 只有能夠支持js的瀏覽器,都可以運行
    
    * javascript和java的區別(雷鋒和雷峰塔)
        (1)java是sun公司,現在oracle;js是網景公司
        (2)JavaScript 是基於對象的,java是面向對象
        (3)java是強類型的語言,js是弱類型的語言
            - 比如java里面 int i = "10";
            - js:  var i = 10; var m = "10";
        (4)JavaScript只需解析就可以執行,而java需要先編譯成字節碼文件,再執行。
    
    * javascript的組成(下面js)
        三部分組成
        (1)ECMAScript
            - ECMA : 歐洲計算機協會
            - 有ECMA組織制定的js的語法,語句.....

        (2)BOM
            - broswer object model: 瀏覽器對象模型

        (3)DOM
            - document object model:文檔對象模型

2、js和html的結合方式(兩種)
    第一種:
        - 使用一個標簽 <script type="text/javascript">  js代碼; </script>
    
    第二種:
        - 使用script標簽,引入一個外部的js文件
        *** 創建一個js文件,寫js代碼
        -     <script type="text/javascript" src="1.js"></script>
    
    ** 使用第二種方式時候,就不要在script標簽里面寫js代碼了,不會執行。

3、js的原始類型和聲明變量
    ** java的基本數據類型 byte short int long float double char boolean

    ** 定義變量 都使用關鍵字 var

    ** js的原始類型(五個)        
        - string: 字符串
            *** var str = "abc";

        - number:數字類型
            *** var m = 123;

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

        - null
            *** var date = new Date();
            *** 獲取對象的引用,null表示對象引用為空 ,所有對象的引用也是object                
        - undifined
            *** 定義一個變量,沒有賦值
            *** var aa;
    ** typeof(); 查看當前變量的數據類型

4、js的語句
    - java里面的語句: 
        ** if判斷
        ** switch語句
        ** 循環 for  while do-while
    
    -js里面的這些語句
        ** if判斷語句
            **** =:表示賦值
            **** ==:表示判斷

        ** switch語句
            - java里面支持數據類型 string支持嗎?在jdk1.7開始支持
            - js里面都支持
            - switch(a) {
                case 5:
                    break;
                case 6:
                    break;
                default:
                ......
             }
        ** 循環語句 for  while    do-while
            - while循環
            **** var i = 5;
            while(i>1) {
                alert(i);
                i--;
            }

            - for循環
            *** for(int i=0;i<=10;i++) { }
            for(var mm=0;mm<=3;mm++) {
                alert(mm);
            }

        ** i++ ++i和java里面一樣

5、js的運算符
    ** +=  : x+=y;  ===> x=x+y;

    ** js里面不區分整數和小數
        var j = 123;
        alert(j/1000*1000);  
        //  j/1000*1000    在java里面得到結果是 0 
        // 在js里面不區分整數和小數,123/1000=0.123 * 1000 = 123

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

        ** 如果相加時候,做是字符串連接
        ** 如果相減,做的是相減的運算

        * //字符串的操作
        var str = "456";
        //alert(str+1);   //在java里面操作的結果是 4561 ,在js里面還是 4561
        alert(str-1);    //相減時候,執行減法的運算

        * 提示NaN:表示不是一個數字

    ** boolean類型也可以操作
        *** 如果設置成true,相當於這個值是1
        *** 如果設置成false,相當於這個值是0
    
    ** == 和 === 區別
        ** 做判斷

        ** == 比較的只是值
        ** === 比較的是值和類型
    
    ** 引入知識
        直接向頁面輸出的語句(可以把內容顯示在頁面上)
        * document.write("aaa");
        document.wirte("<hr/>");
        ** 可以向頁面輸出變量,固定值和html代碼

6、實現99乘法表(輸出到頁面上)
    *    document.write("<table border='1' bordercolor='blue'>");
        //循環行 9
        for(var i=1;i<=9;i++) {

            document.write("<tr>");
            //循環列
            for(var j=1;j<=i;j++) {
                document.write("<td>");
                //運算
                document.write(j+"*"+i+"="+i*j);
                document.write("</td>");
            }
            //document.write("<br/>");
            document.write("</tr>");
        }
        document.write("</table>");

    - document.write里面是雙引號,如果設置標簽的屬性需要使用單引號
    - document.write可以輸出變量,還可以輸出html代碼

7、js的數組
    * 什么是數組?
        - 使用變量,var m = 10;
        - java里面的數組 定義 int[] arr = {1,2,3};

    * 定義方式(三種)
        第一種: var arr = [1,2,3];   var arr = [1,"4",true];
        第二種:使用內置對象 Array對象
            var arr1 = new Array(5);  //定義一個數組,數組的長度是5
            arr1[0] = "1";

        第三種:使用內置對象 Array
            var arr2 = new Array(3,4,5); //定義一個數組,數組里面的元素是3 4 5 
    
    * 數組里面有一個屬性  length:獲取到數組的長度

    * 數組可以存放不同的數據類型的數據

8、js的函數
    ** 在java里面定義方法
        public 返回類型void /int   方法名(參數列表) {
            方法體;
            返回值;
        }

        public int add(int a,int b) {
            int sum = a+b;
            return sum;
        }

    ** 在js里面定義函數(方法)有三種方式
        **** 函數的參數列表里面,不需要寫var,直接寫參數名稱
        第一種方式:
            **** 使用到一個關鍵字 function
            **** function 方法名(參數列表) {
                方法體;
                返回值可有可無(根據實際需要);
             }

            **** 代碼
            //使用第一種方式創建函數
            function test() {
                alert("qqqqq");
            }

            //調用方法
            //test();

            //定義一個有參數的方法  實現兩個數的相加
            function add1(a,b) {
                var sum = a+b;
                alert(sum);        
            }

            //add1(2,3);

            //有返回值的效果
            function add2(a,b,c) {
                var sum1 = a+b+c;
                return sum1;
            }
            alert(add2(3,4,5));
        
        第二種方式:
            **** 匿名函數
                var add = function(參數列表) {
                    方法體和返回值;
                }
            **** 代碼
            //第二種方式創建函數
            var add3 = function(m,n) {
                alert(m+n);
            }

            //調用方法
            add3(5,6);
        
        第三種方式:(用的少,了解)
            *** 動態函數
            *** 使用到js里面的一個內置對象 Function
                var add = new Function("參數列表","方法體和返回值");

9、js的全局變量和局部變量
    ** 全局變量:在script標簽里面定義一個變量,這個變量在頁面中js部分都可以使用
        - 在方法外部使用,在方法內部使用,在另外一個script標簽使用

    ** 局部變量:在方法內部定義一個變量,只能在方法內部使用
        - 如果在方法的外部調用這個變量,提示出錯
        - SCRIPT5009: “nn”未定義 
        12-js的局部變量.html, 行18 字符3
    
    ** ie自帶了一個調試工具,ie8及其以上的版本中,鍵盤上 F12,在頁面下方出現一個條

10、script標簽放在的位置
    * 建議把script標簽放到 </body>后面
    * 如果現在有這樣一個需求:
        在js里面需要獲取到input里面的值,如果把script標簽放到head里面
        會出現問題。
        html解析是從上到下解析的,script標簽放到的是head里面,直接在里面取input里面的值,
        因為頁面還沒有解析到input那一行,肯定取不到。

11、js的重載
    * 什么是重載?方法名相同,參數列表不同
        - java里面有重載,肯定有

    * js里面是否有重載?

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM