JavaWeb - JavaScript [ECMAScript]語法、對象

JavaScript 參考手冊 :https://www.w3school.com.cn/jsref/index.asp
JavaWeb 學習筆記

  • JavaScript = ECMAScript + JavaScript自己特有的東西(BOM+DOM)
  • ECMAScript : 客戶端腳本語言的標準

基本語法 - 使用與註釋

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>JS的使用</title>
        <!--放的位置影響執行的順序,放在前面先執行,放在後面後執行-->
        <!--如果放在前面不點擊確定是不會加載下面的內容-->
        <!--內部js:定義script,寫js-->
        <!--如果放在下面讓input先加載就可以獲取到input的內容-->
        <!--script可以定義很多個-->
        <script>
            // alert("hello world!");
            // alert("hello world!");
            // alert("hello world!");
            /**
             * 多汗註釋
             */
            alert("hello world!")
        </script>
        <!--外部js:定義script,src引入js文件-->
        <script src="../js/xxx.js"></script>
    </head>
    <body>
        <input>
        <!--<script>-->
        <!--    alert("hello world!")-->
        <!--</script>-->
    </body>
</html>
alert("外部文件")

基本語法 - 基本類型與變量

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>變量</title>
        <script>
            // var a = "aa";
            // alert(a);
            // a = "123";
            // alert(a)

            // number類型
            var num = 1;
            var num1 = 1.2;
            var num2 = NaN;
            // 內容輸出到頁面上
            document.write(num + "&nbsp;&nbsp;&nbsp;&nbsp;typeof: " + typeof(num) + "<br><br>");
            document.write(num1 + "&nbsp;&nbsp;&nbsp;&nbsp;typeof: " + typeof(num1) + "<br><br>");
            document.write(num2 + "&nbsp;&nbsp;&nbsp;&nbsp;typeof: " + typeof(num2) + "<br><br>");

            //string類型
            var str = "aaa";
            var str1 = 'bbb';
            document.write(str + "&nbsp;&nbsp;&nbsp;&nbsp;typeof: " + typeof(str) + "<br><br>");
            document.write(str1 + "&nbsp;&nbsp;&nbsp;&nbsp;typeof: " + typeof(str1) + "<br><br>");
            // boolean類型
            var flag = true;
            document.write(flag + "&nbsp;&nbsp;&nbsp;&nbsp;typeof: " + typeof(flag) + "<br><br>");

            // null
            //https://www.w3school.com.cn/js/index.asp JavaScrip
            //出處:https://www.w3school.com.cn/js/index_pro.asp JavaScrip高級教程
            //這個網站中的註釋有說道
            var obj = null;
            var obj1 = undefined;
            var obj2;
            document.write(obj + "&nbsp;&nbsp;&nbsp;&nbsp;typeof: " + typeof(obj) + "<br><br>");
            document.write(obj1 + "&nbsp;&nbsp;&nbsp;&nbsp;typeof: " + typeof(obj1) + "<br><br>");
            document.write(obj2 + "&nbsp;&nbsp;&nbsp;&nbsp;typeof: " + typeof(obj2) + "<br><br>");

            // 判斷變量類型

        </script>
    </head>
    <body>

    </body>
</html>

基本語法 - 運算符

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>運算符</title>
        <script>
            // 一元運算符
            var num = 1;
            var num1 = num ++;
            document.write(num + "<br><br>");//2
            document.write(num1 + "<br><br>");//1
            //+:正號
            var num2 = +1;
            document.write(num2 + "<br><br>");
            var num3 = -1;
            document.write(num3 + "<br><br>");
            //如果給定的類型不是number類型就會轉成這個類型(前提是有正號)
            //string轉number,如果字符串不是數字類型還是要轉換成number型,轉爲NaN
            var num4 = +"11bc";
            document.write(num4 + " " + typeof (num4)+ "<br><br>");
            document.write(num4 + 1 + "<br><br>");//112
            //boolean
            var flag = +true;
            var flag1 = +false;
            document.write(flag + " " + typeof (flag)+ "<br><br>");//1
            document.write(flag1 + " " + typeof (flag1)+ "<br><br>");//0
            // 其餘的轉換出來就是NaN


            // 算數運算符
            var a = 3;
            var b = 4;
            document.write(a + b + "<br><br>");
            document.write(a - b + "<br><br>");
            document.write(a * b + "<br><br>");
            document.write(a / b + "<br><br>");//0.75
            document.write(a % b + "<br><br>");

            // 賦值運算符 = += -+....

            // 比較運算符 > < >= <= == ===(全等於)
            // 類型相同時直接比較,不同時先進行類型轉換在進行比較
            document.write((3 > 4) + "<br><br>");
            document.write((3 < 4) + "<br><br>");
            // 字符串按照每一個字符進行比較
            document.write(("abc" > "ab") + "<br><br>");
            document.write(("abc" < "ab") + "<br><br>");
            // 類型不同
            document.write(("123" > 100) + "<br><br>");//true
            document.write(("abc" < 100) + "<br><br>");//false
            document.write(("abc" > 100) + "<br><br>");//false
            document.write(("123" == 123) + "<br><br>");//true 先進行類型轉換再比較
            // 類型不同直接返回false
            document.write(("123" === 123) + "<br><br>");//false
            document.write("<hr>");


            // 邏輯運算符 && || !
            // 其他類型轉boolean
            // number:0或NaN爲假,其他爲真
            document.write(!!0 + "<br><br>");
            document.write(!!NaN + "<br><br>");
            document.write(!!3 + "<br><br>");
            // string:除了空字符串(""),其他都是true
            document.write(!!"" + "<br><br>");
            document.write(!!"123" + "<br><br>");

            // null&undefined:都是false
            document.write(!!null + "<br><br>");
            document.write(!!undefined + "<br><br>");
            // 對象:所有對象都爲true
            var date = new Date();
            document.write(!!date + " " + typeof (date)+ "<br><br>");
            // if (date != null) { // 防止空指針異常
            //
            // }
            if (date) { // 防止空指針異常
                // 對象爲 null 直接轉成 false
            }


            // 三元運算符
            var c = a < b ? 1 : 0;
            document.write(c + "<br><br>")


        </script>
    </head>
    <body>
        
    </body>
</html>

基本語法 - 流程控制語句

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>流程控制語句</title>
        <script>
            // if...else...
            // switch可以接收任意的原始數據類型,number,string,boolean,null,undefined
            var a = 1;
            switch (a) {
                case 1:
                    document.write("1" + "<br><br>");
                    break;
                case "abc":
                    document.write("abc" + "<br><br>");
                    break;
                case true:
                    document.write("true" + "<br><br>");
                    break;
                case null:
                    document.write("null" + "<br><br>");
                    break;
                case undefined:
                    document.write("undefined" + "<br><br>");
                    break;
            }
            // where
            var sum = 0;
            var num = 1;
            while (num <= 100) {
                sum += num;
                num ++;
            }
            document.write(sum + "<br><br>");
            //for
            sum = 0;
            for (var i = 1; i <= 100; ++ i) {
                sum += i;
            }
            document.write(sum + "<br><br>");
            //do...while
        </script>
    </head>
    <body>
        
    </body>
</html>

基本語法 - 特殊語法

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>特殊語法</title>
        <script>
            // 一行只有一個語句時分分號可以省略
            // var a = 3
            // alert(a)

            // 可以用var,也可以不使用,使用就是局部變量,不用就是全局變量
            a = 3;
            var b = 4;
            
        </script>
    </head>
    <body>
        
    </body>
</html>

基本對象 - function 對象

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Function對象</title>
        <!--JavaScript對象參考手冊:https://www.w3school.com.cn/jsref/index.asp-->
        <!--JavaScript高級教程:https://www.w3school.com.cn/js/index_pro.asp-->
        <script>
            // Function對象
            // 創建
            // 方式1
            // var a = 1;
            // var fun = new Function("a", "b", "document.write(a + \"<br><br>\");");
            // fun(3, 4);
            // 方式2
            function fun1(a, b) {
                document.write(b + "<br><br>");
            }
            document.write(fun1.length + "<br><br>");//形參個數
            // fun(3, 4);
            // 方式3
            var fun = function (a, b) {
                // document.write(a + "<br><br>");
                alert(b);
                alert(a);
            };
            // js方法的調用只和方法名有關,和參數列表無關
            // fun(1, 2);
            // 這裏傳一個參數就可以
            // fun(1);//b是undefined
            // 不傳參數也可以
            // fun();//a b都是undefined
            // fun(1, 2, 2);
            // 這裏有一個隱藏的內置對象(數組),arguments,封裝所有的實際參數
            /**
             * 求兩個數的和
             * @param a
             * @param b
             * @returns {*}
             */
            function add(a, b) {
                return a + b;
            }
            // alert(add(1, 2));

            /**
             * 任意個數的和
             * 返回值可以不寫
             */
            function add1() {
                // document.write(arguments[0] + "<br>");
                // document.write(arguments[1] + "<br>");
                var sum = 0;
                for (var i = 0; i < arguments.length; ++ i) {
                    sum += arguments[i];
                }
                return sum;
            }
            ;document.write(add1(1, 2, 3, 4, 5) + "<br>");
            // 方法覆蓋 方法就是一個對象
            // fun = function (a, b) {
            //     document.write(b + "<br><br>");
            // };
            // fun(3, 4);

        </script>
    </head>
    <body>
        
    </body>
</html>

基本對象 - Array 對象

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Array對象</title>
        <script>
            // 創建
            // 方式1
            var arr1 = new Array(1, 2, 3); // 元素列表
            // 方式2
            var arr2 = new Array(5); // 默認長度
            var arr4 = new Array();
            // 方式3
            var arr3 = [1, 2, 3, 4, "aaa", true]; // 元素列表
            document.write(arr1 + "<br>");// 1,2,3
            document.write(arr2 + "<br>");// ,,,,
            document.write(arr3 + "<br>");// 1,2,3,4



            // JavaScript 參考手冊:https://www.w3school.com.cn/jsref/index.asp
            // 方法
            // 將數組中的元素按照指定的分隔符拼接爲字符串
            document.write("拼接:" + arr3.join() + "<br>"); // 默認,分割
            document.write("拼接:" + arr3.join(" ") + "<br>"); // 默認,分割
            //向數組中添加元素
            arr3[10] = 6;
            arr3.push("zut");
            document.write("拼接:" + arr3.join(" ") + "<br>"); // 默認,分割
            // 屬性
            //數組長度
            document.write(arr1.length + "<br>");
            // 特點
            // 數組元素類型可變
            var array = [1, "abc", true];
            document.write(array + "<br>");
            document.write(array[0] + "<br>");
            document.write(array[1] + "<br>");
            document.write(array[2] + "<br>");
            // 數組長度可變
            document.write(array[3] + "<br>"); // 擴容,默認undefined
            array[10] = "aa";
            document.write(array + "<br>");//1,abc,true,,,,,,,,aa
        </script>
    </head>
    <body>
        
    </body>
</html>

基本對象 - Date 對象

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Date對象</title>
        <script>
            // 日期對象:https://www.w3school.com.cn/jsref/jsref_obj_date.asp
            // 創建
            var date = new Date();
            document.write(date + "<br>");
            // 方法
            // 格式化時間:語言跟隨系統
            document.write(date.toLocaleString() + "<br>");
            // 獲取毫秒值
            document.write(date.getTime() + "<br>");
        </script>
    </head>
    <body>

    </body>
</html>

基本對象 - Math 對象

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Math對象</title>
        <script>
            // Math對象:https://www.w3school.com.cn/jsref/jsref_obj_math.asp
            // 不用創建直接使用,Math.方法名()
            // PI是屬性
            document.write(Math.PI + "<br>");
            // 返回0-1之間的隨機數字(包含0,不包含1)
            document.write(Math.random() + "<br>");
            // 四捨五入
            document.write(Math.round(3.1) + "<br>");
            // 向上取整
            document.write(Math.ceil(3.1) + "<br>");
            // 向下取整
            document.write(Math.floor(3.1) + "<br>");
            /**
             * 1-100之間的隨機整數
             */
            document.write(Math.floor(Math.random() * 100) + 1 + "<br>");
        </script>
    </head>
    <body>
        
    </body>
</html>

基本對象 - RegExp 對象

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>RegExp對象</title>
        <script>
            // 正則表達式對象:https://www.w3school.com.cn/jsref/jsref_obj_regexp.asp
            // 用戶名要求,號碼組成,用戶名長度範圍
            // []:單個字符 [a] [a,b,c] [a-zA-Z0-9_]
            // \d:單個數字字符[0-9]
            // \w:單個單詞字符[a-zA-Z0-9_]


            // 量詞符號:* ? +
            // *:出現0次或者多次
            // ?:出現0次或者1次
            // +:出現1次或者多次
            // \w*:單個字符組成,出現0次或者多次
            // {m,n} m<=數量<=n {,n}:m缺省,最多n次 {m,}:n缺省,最少m次
            // \w{6,12}:單個字符組成,長度爲[6,12]
            //上面是正則表達式的通用規則

            //開始結束符號:^:開始,$:結束

            //正則對象
            //創建
            var regExp = new RegExp("^\\w{8,18}$");//轉義字符
            var regExp1 = /^\w{8,18}$/;
            document.write(regExp + "<br>");
            document.write(regExp1 + "<br>");

            //方法:驗證指定的字符串是否符合正則定義的規範
            //表單校驗需要使用到正則表達式
            var username = "1111111111111111111111111111";
            var username1 = "11111111";
            var flag = regExp.test(username);
            var flag1 = regExp1.test(username1);
            document.write(flag + "<br>");
            document.write(flag1 + "<br>");
        </script>
    </head>
    <body>
        
    </body>
</html>

基本對象 - Global 對象

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Global對象</title>
        <script>
            // 全局對象,其中的方法不需要對象就可以直接調用.方法名();
            // 全局對象:https://www.w3school.com.cn/jsref/jsref_obj_global.asp
            // url編碼,做數據傳輸的時候,傳輸的時候通過了一些協議,比如http協議,協議不支持中文數據,
            // 如果要把中文數據發送到服務器,就需要進行轉碼,http默認的也是url編碼
            var str = "中原工學院";// %E4%B8%AD%E5%8E%9F%E5%B7%A5%E5%AD%A6%E9%99%A2
            var encode = encodeURI(str);
            document.write(encode + "<br>");
            // url解碼
            var s = decodeURI(encode);
            document.write(s + "<br>");
            // url編碼,編碼的字符更多(有一些字符上面的那種是不進行編碼的)
            var str1 = "中原工學院";// %E4%B8%AD%E5%8E%9F%E5%B7%A5%E5%AD%A6%E9%99%A2
            var encode1 = encodeURIComponent(str1);
            document.write(encode1 + "<br>");
            // url解碼
            var s1 = decodeURIComponent(encode1);
            document.write(s1 + "<br>");


            // 將字符串裝換成數字:逐一判斷每一個字符是否是數字,直到不是數字爲止,將前邊數字部分轉爲number
            var str = "123abc";
            document.write(parseInt(str) + "&nbsp;&nbsp;typeof:" + typeof (parseInt(str)) + "<br>");//123
            //所有的值都不等於NaN,NaN和NaN比較也不相等
            var str1 = NaN;
            document.write(isNaN(str1) + "<br>");

            //把js的字符串轉換成腳本來執行,可以解析字符串
            var jscode = "document.write(\"123\");";
            document.write(jscode + "<br>");//document.write("123");
            eval(jscode);//123
        </script>
    </head>
    <body>

    </body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章