主頁 > 前端設計 > JavaScript詳細決議

JavaScript詳細決議

2021-09-22 10:20:13 前端設計

文章目錄

  • 1、JavaScript詳細決議
    • 1.1、JavaScript介紹
    • 1.2、快速入門
      • 引入js的方式一:內部方式
      • 引入js的方式一:外部方式
    • 1.3、開發環境搭建
    • 1.4、快速入門總結
  • 2、JavaScript基本語法
    • 2.1、注釋
    • 2.2、輸入輸出陳述句
    • 2.3、變數和常量
    • 2.4、原始資料型別和typeof方法
      • 2.4.1、原始資料型別
      • 2.4.2、typeof
    • 2.5、運算子
    • 2.6、流程控制和回圈陳述句
    • 2.7、陣列
    • 2.8、函式
    • 2.9、小結
  • 3、JavaScript DOM
    • 3.1、DOM介紹
    • 3.2、Element元素的獲取操作
    • 3.3、Element元素的增刪改操作
    • 3.4、Attribute屬性的操作
    • 3.5、Text文本的操作
    • 3.6、DOM小結
  • 4、JavaScript 事件
    • 4.1、事件介紹
    • 4.2、事件操作
    • 4.3、事件小結
  • 5、JavaScript綜合案例
    • 5.1、案例效果介紹
    • 5.2、添加功能的分析
    • 5.3、添加功能的實作
    • 5.4、洗掉功能的分析
    • 5.5、洗掉功能的實作
  • 6、JavaScript面向物件
    • 6.1、面向物件介紹
    • 6.2、類的定義和使用
    • 6.3、字面量類的定義和使用
    • 6.3、繼承
    • 6.4、小結
  • 7、JavaScript內置物件
    • 7.1、Number
    • 7.2、Math
    • 7.3、Date
    • 7.4、String
    • 7.5、RegExp
    • 7.6、Array
    • 7.7、Set
    • 7.8、Map
    • 7.9、Json
    • 7.10、表單校驗
    • 7.11、小結
  • 8、JavaScript BOM
    • 8.1、Windows視窗物件
    • 8.2、Location地址欄物件
    • 8.3、案例-動態廣告
    • 8.4、小結
  • 9、JavaScript封裝

1、JavaScript詳細決議

1.1、JavaScript介紹

  • JavaScript 是一種客戶端腳本語言,運行在客戶端瀏覽器中,每一個瀏覽器都具備決議 JavaScript 的引擎,

  • 腳本語言:不需要編譯,就可以被瀏覽器直接決議執行了,

  • 核心功能就是增強用戶和 HTML 頁面的互動程序,讓頁面有一些動態效果,以此來增強用戶的體驗!

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-AbUjw3O0-1632119279795)(…\images\js\img\javaScript表格介紹.png)]在這里插入圖片描述

        1995 年,NetScape (網景)公司,開發的一門客戶端腳本語言:LiveScript,后來,請來 SUN 公司的專家來 進行修改,后命名為:JavaScript,
        1996 年,微軟抄襲 JavaScript 開發出 JScript 腳本語言, 
        1997 年,ECMA (歐洲計算機制造商協會),制定出客戶端腳本語言的標準:ECMAScript,統一了所有客戶 端腳本語言的編碼方式,
    

在這里插入圖片描述

1.2、快速入門

  • 實作步驟
  1. 創建一個 HTML,
  2. 在標簽下面撰寫一個
  • 具體實作
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JS快速入門</title>
</head>
<body>
    <button id="btn">點我呀</button>
</body>
</html>

引入js的方式一:內部方式

<script>
    document.getElementById("btn").onclick=function () {
        alert("點我干嘛?");
    }
</script>

引入js的方式一:外部方式

  • 創建js檔案

    document.getElementById("btn").onclick=function () {
        alert("點我干嘛?");
    }
    
  • 在html中參考外部js檔案

    <script src="js/my.js"></script>
    

1.3、開發環境搭建

  • Node.js:JavaScript 運行環境

  • VSCode:撰寫前端技術的開發工具

1.4、快速入門總結

  • JavaScript 是一種客戶端腳本語言,

  • 組成部分

    ECMAScript、DOM、BOM
    
  • 和 HTML 結合方式

    內部方式:<script></script>
    外部方式:<script src=檔案路徑></script>
    

2、JavaScript基本語法

2.1、注釋

  • 單行注釋

    // 注釋的內容
    
  • 多行注釋

    /*
    注釋的內容
    */
    

2.2、輸入輸出陳述句

  • 輸入框 prompt(“提示內容”);
  • 彈出警告框 alert(“提示內容”);
  • 控制臺輸出 console.log(“顯示內容”);
  • 頁面內容輸出 document.write(“顯示內容”);

2.3、變數和常量

? JavaScript 屬于弱型別的語言,定義變數時不區分具體的資料型別,

  • 定義區域變數 let 變數名 = 值;

    //1.定義區域變數
    let name = "張三";
    let age = 23;
    document.write(name + "," + age +"<br>");
    
  • 定義全域變數 變數名 = 值;

    //2.定義全域變數
    {
        let l1 = "aa";
        l2 = "bb";
    }
    //document.write(l1);
    document.write(l2 + "<br>");
    
  • 定義常量 const 常量名 = 值;

    //3.定義常量
    const PI = 3.1415926;
    //PI = 3.15;
    document.write(PI);
    

2.4、原始資料型別和typeof方法

2.4.1、原始資料型別

在這里插入圖片描述

2.4.2、typeof

typeof 用于判斷變數的資料型別

	let age = 18; 
	document.write(typeof(age)); // number

2.5、運算子

  • 算數運算子

在這里插入圖片描述

  • 賦值運算子

在這里插入圖片描述

  • 比較運算子

在這里插入圖片描述

  • 邏輯運算子

在這里插入圖片描述

  • 三元運算子

    • 三元運算子格式

      (比較運算式) ? 運算式1 : 運算式2;

    • 執行流程

      如果比較運算式為true,則取運算式1

      如果比較運算式為false,則取運算式2

2.6、流程控制和回圈陳述句

  • if 陳述句

    //if陳述句
    let month = 3;
    if(month >= 3 && month <= 5) {
        document.write("春季");
    }else if(month >= 6 && month <= 8) {
        document.write("夏季");
    }else if(month >= 9 && month <= 11) {
        document.write("秋季");
    }else if(month == 12 || month == 1 || month == 2) {
        document.write("冬季");
    }else {
        document.write("月份有誤");
    }
    
    document.write("<br>");
    
  • switch 陳述句

    //switch陳述句
    switch(month){
        case 3:
        case 4:
        case 5:
            document.write("春季");
            break;
        case 6:
        case 7:
        case 8:
            document.write("夏季");
            break;
        case 9:
        case 10:
        case 11:
            document.write("秋季");
            break;
        case 12:
        case 1:
        case 2:
            document.write("冬季");
            break;
        default:
            document.write("月份有誤");
            break;
    }
    
    document.write("<br>");**for 回圈**
    
  • for回圈

    //for回圈
    for(let i = 1; i <= 5; i++) {
        document.write(i + "<br>");
    }
    
  • while 回圈

    //while回圈
    let n = 6;
    while(n <= 10) {
        document.write(n + "<br>");
        n++;
    }
    

2.7、陣列

  • 陣列的使用和 java 中的陣列基本一致,但是在 JavaScript 中的陣列更加靈活,資料型別和長度都沒有限制,

  • 定義格式

    • let 陣列名 = [元素1,元素2,…];

    • let arr = [10,20,30];
      
  • 索引范圍

    • 從 0 開始,最大到陣列長度-1
    • 陣列長度
    • 陣列名.length
      for(let i = 0; i < arr.length; i++) {
          document.write(arr[i] + "<br>");
      }
      document.write("==============<br>");
      
  • 陣列高級運算子…

    • 陣列復制

       //復制陣列
       let arr2 = [...arr];
       //遍歷陣列
       for(let i = 0; i < arr2.length; i++) {
       document.write(arr2[i] + "<br>");
       }
       document.write("==============<br>");
      
    • 合并陣列

      //合并陣列
      let arr3 = [40,50,60];
      let arr4 = [...arr2 , ...arr3];
      //遍歷陣列
      for(let i = 0; i < arr4.length; i++) {
      document.write(arr4[i] + "<br>");
      }
      document.write("==============<br>");
      
    • 字串轉陣列

      //將字串轉成陣列
      let arr5 = [..."heima"];
      //遍歷陣列
      for(let i = 0; i < arr5.length; i++) {
      document.write(arr5[i] + "<br>");
      }
      

2.8、函式

  • 函式類似于 java 中的方法,可以將一些代碼進行抽取,達到復用的效果

  • 定義格式

    function 方法名(引數串列) {
        方法體; 
        return 回傳值; 
    }
    
  • 可變引數

    function 方法名(…引數名) {
        方法體; 
        return 回傳值; 
    }
    
  • 匿名函式

    function(引數串列) {
        方法體; 
    }
    

2.9、小結

  • 注釋:單行// 多行/**/
  • 輸入輸出陳述句:prompt()、alert()、console.log()、document.write()
  • 變數和常量:let、const
  • 資料型別:boolean、null、undefined、number、string、bigint
  • typeof 關鍵字:用于判斷變數的資料型別
  • 運算子:算數、賦值、邏輯、比較、三元運算子
  • 流程控制和回圈陳述句:if、switch、for、while
  • 陣列:資料型別和長度沒有限制,let 陣列名 = [長度/元素]
  • 函式:類似方法,抽取代碼,提高復用性

3、JavaScript DOM

3.1、DOM介紹

  • DOM(Document Object Model):檔案物件模型,
  • 將 HTML 檔案的各個組成部分,封裝為物件,借助這些物件,可以對 HTML 檔案進行增刪改查的動態操作,
    在這里插入圖片描述

3.2、Element元素的獲取操作

  • 具體方法
    在這里插入圖片描述

  • 代碼實作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>元素的獲取</title>
</head>
<body>
    <div id="div1">div1</div>
    <div id="div2">div2</div>
    <div class="cls">div3</div>
    <div class="cls">div4</div>
    <input type="text" name="username"/>
</body>
<script>
    //1. getElementById()   根據id屬性值獲取元素物件
    let div1 = document.getElementById("div1");
    //alert(div1);

    //2. getElementsByTagName()   根據元素名稱獲取元素物件們,回傳陣列
    let divs = document.getElementsByTagName("div");
    //alert(divs.length);

    //3. getElementsByClassName()  根據class屬性值獲取元素物件們,回傳陣列
    let cls = document.getElementsByClassName("cls");
    //alert(cls.length);

    //4. getElementsByName()   根據name屬性值獲取元素物件們,回傳陣列
    let username = document.getElementsByName("username");
    //alert(username.length);

    //5. 子元素物件.parentElement屬性   獲取當前元素的父元素
    let body = div1.parentElement;
    alert(body);
</script>
</html>

3.3、Element元素的增刪改操作

  • 具體方法

在這里插入圖片描述

  • 代碼實作

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>元素的增刪改</title>
    </head>
    <body>
        <select id="s">
            <option>---請選擇---</option>
            <option>北京</option>
            <option>上海</option>
            <option>廣州</option>
        </select>
    </body>
    <script>
        //1. createElement()   創建新的元素
        let option = document.createElement("option");
        //為option添加文本內容
        option.innerText = "深圳";
    
        //2. appendChild()     將子元素添加到父元素中
        let select = document.getElementById("s");
        select.appendChild(option);
    
        //3. removeChild()     通過父元素洗掉子元素
        //select.removeChild(option);
    
        //4. replaceChild()    用新元素替換老元素
        let option2 = document.createElement("option");
        option2.innerText = "杭州";
        select.replaceChild(option2,option);
    
    </script>
    </html>
    

3.4、Attribute屬性的操作

  • 具體方法
    在這里插入圖片描述

  • 代碼實作

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>屬性的操作</title>
        <style>
            .aColor{
                color: blue;
            }
        </style>
    </head>
    <body>
        <a>點我呀</a>
    </body>
    <script>
        //1. setAttribute()    添加屬性
        let a = document.getElementsByTagName("a")[0];
        a.setAttribute("href","https://www.baidu.com");
    
        //2. getAttribute()    獲取屬性
        let value = a.getAttribute("href");
        //alert(value);
    
        //3. removeAttribute()  洗掉屬性
        //a.removeAttribute("href");
    
        //4. style屬性   添加樣式
        //a.style.color = "red";
    
        //5. className屬性   添加指定樣式
        a.className = "aColor";
    
    </script>
    </html>
    

3.5、Text文本的操作

  • 具體方法
    在這里插入圖片描述

  • 代碼實作

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>文本的操作</title>
    </head>
    <body>
        <div id="div"></div>
    </body>
    <script>
        //1. innerText   添加文本內容,不決議標簽
        let div = document.getElementById("div");
        div.innerText = "我是div";
        //div.innerText = "<b>我是div</b>";
    
        //2. innerHTML   添加文本內容,決議標簽
        div.innerHTML = "<b>我是div</b>";
    
    </script>
    </html>
    

3.6、DOM小結

  • DOM(Document Object Model):檔案物件模型
  • Document:檔案物件
  • Element:元素物件
  • Attribute:屬性物件
  • Text:文本物件
  • 元素的操作
    • getElementById()
    • getElementsByTagName()
    • getElementsByName()
    • getElementsByClassName()
  • 子元素物件.parentElement屬性
    • createElement()
    • appendChild()
    • removeChild()
    • replaceChild()
  • 屬性的操作
    • setAtrribute()
    • getAtrribute()
    • removeAtrribute()
    • style屬性
  • 文本的操作
    • innerText
    • innerHTML

4、JavaScript 事件

4.1、事件介紹

事件指的就是當某些組件執行了某些操作后,會觸發某些代碼的執行,

  • 常用的事件

    事件名說明
    onblur元素失去焦點,在物件失去焦點時發生
    onchange域的內容被改變時發生
    onclick當用戶點擊某個物件時呼叫的事件句柄
    ondblclick當用戶雙擊某個物件時呼叫的事件句柄
    onfocus元素獲得焦點時發生
    onsubmit確認按鈕被點擊時發生
    onreset重置按鈕被點擊,事件會在表單中的重置按鈕被點擊時發生
  • 了解的事件

在這里插入圖片描述

4.2、事件操作

系結事件

  • 方式一

    通過標簽中的事件屬性進行系結,

    <button id="btn" onclick="執行的功能"></button>
    
  • 方式二

    通過 DOM 元素屬性系結,

    document.getElementById("btn").onclick = 執行的功能
    

4.3、事件小結

  • 事件指的就是當某些組件執行了某些操作后,會觸發某些代碼的執行,
  • 常用的事件 onl oad onsubmit onclick ondblclick onblur onfocus onchange
  • 系結事件方式
    • 方式一:通過標簽中的事件屬性進行系結,
    • 方式二:通過 DOM 元素屬性系結,

5、JavaScript綜合案例

5.1、案例效果介紹

  • 在“姓名、年齡、性別”三個文本框中填寫資訊后,添加到“學生資訊表”串列(表格)中,

在這里插入圖片描述

5.2、添加功能的分析

  1. 為添加按鈕系結單擊事件,
  2. 創建 tr 元素,
  3. 創建 4 個 td 元素,
  4. 將 td 添加到 tr 中,
  5. 獲取文本框輸入的資訊,
  6. 創建 3 個文本元素,
  7. 將文本元素添加到對應的 td 中,
  8. 創建 a 元素,
  9. 將 a 元素添加到對應的 td 中,
  10. 將 tr 添加到 table 中,

5.3、添加功能的實作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>動態表格</title>

    <style>
        table{
            border: 1px solid;
            margin: auto;
            width: 500px;
        }

        td,th{
            text-align: center;
            border: 1px solid;
        }
        div{
            text-align: center;
            margin: 50px;
        }
    </style>

</head>
<body>

<div>
    <input type="text" id="name" placeholder="請輸入姓名" autocomplete="off">
    <input type="text" id="age"  placeholder="請輸入年齡" autocomplete="off">
    <input type="text" id="gender"  placeholder="請輸入性別" autocomplete="off">
    <input type="button" value="添加" id="add">
</div>

    <table id="tb">
        <caption>學生資訊表</caption>
        <tr>
            <th>姓名</th>
            <th>年齡</th>
            <th>性別</th>
            <th>操作</th>
        </tr>

        <tr>
            <td>張三</td>
            <td>23</td>
            <td></td>
            <td><a href="JavaScript:void(0);" onclick="drop(this)">洗掉</a></td>
        </tr>

        <tr>
            <td>李四</td>
            <td>24</td>
            <td></td>
            <td><a href="JavaScript:void(0);" onclick="drop(this)">洗掉</a></td>
        </tr>

    </table>

</body>
<script>
    //一、添加功能
    //1.為添加按鈕系結單擊事件
    document.getElementById("add").onclick = function(){
        //2.創建行元素
        let tr = document.createElement("tr");
        //3.創建4個單元格元素
        let nameTd = document.createElement("td");
        let ageTd = document.createElement("td");
        let genderTd = document.createElement("td");
        let deleteTd = document.createElement("td");
        //4.將td添加到tr中
        tr.appendChild(nameTd);
        tr.appendChild(ageTd);
        tr.appendChild(genderTd);
        tr.appendChild(deleteTd);
        //5.獲取輸入框的文本資訊
        let name = document.getElementById("name").value;
        let age = document.getElementById("age").value;
        let gender = document.getElementById("gender").value;
        //6.根據獲取到的資訊創建3個文本元素
        let nameText = document.createTextNode(name);
        let ageText = document.createTextNode(age);
        let genderText = document.createTextNode(gender);
        //7.將3個文本元素添加到td中
        nameTd.appendChild(nameText);
        ageTd.appendChild(ageText);
        genderTd.appendChild(genderText);
        //8.創建超鏈接元素和顯示的文本以及添加href屬性
        let a = document.createElement("a");
        let aText = document.createTextNode("洗掉");
        a.setAttribute("href","JavaScript:void(0);");
        a.setAttribute("onclick","drop(this)");
        a.appendChild(aText);
        //9.將超鏈接元素添加到td中
        deleteTd.appendChild(a);
        //10.獲取table元素,將tr添加到table中
        let table = document.getElementById("tb");
        table.appendChild(tr);
    }
</script>
</html>

5.4、洗掉功能的分析

  • 洗掉功能介紹

在這里插入圖片描述

  • 洗掉功能分析
  1. 為每個洗掉超鏈接添加單擊事件屬性,
  2. 定義洗掉的方法,
  3. 獲取 table 元素,
  4. 獲取 tr 元素,
  5. 通過 table 洗掉 tr,

5.5、洗掉功能的實作

//二、洗掉的功能
//1.為每個洗掉超鏈接標簽添加單擊事件的屬性
//2.定義洗掉的方法
function drop(obj){
	//3.獲取table元素
	let table = obj.parentElement.parentElement.parentElement;
	//4.獲取tr元素
	let tr = obj.parentElement.parentElement;
	//5.通過table洗掉tr
	table.removeChild(tr);
}

6、JavaScript面向物件

6.1、面向物件介紹

	在 Java 中我們學習過面向物件,核心思想是萬物皆物件,在 JavaScript 中同樣也有面向物件,思想類似,

在這里插入圖片描述

6.2、類的定義和使用

  • 結構說明

在這里插入圖片描述

  • 代碼實作

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>類的定義和使用</title>
    </head>
    <body>
        
    </body>
    <script>
        //定義Person類
        class Person{
            //構造方法
            constructor(name,age){
                this.name = name;
                this.age = age;
            }
    
            //show方法
            show(){
                document.write(this.name + "," + this.age + "<br>");
            }
    
            //eat方法
            eat(){
                document.write("吃飯...");
            }
        }
    
        //使用Person類
        let p = new Person("張三",23);
        p.show();
        p.eat();
    </script>
    </html>
    

    6.3、字面量類的定義和使用

  • 結構說明

在這里插入圖片描述

  • 代碼實作

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>字面量定義類和使用</title>
    </head>
    <body>
        
    </body>
    <script>
        //定義person
        let person = {
            name : "張三",
            age : 23,
            hobby : ["聽課","學習"],
    
            eat : function() {
                document.write("吃飯...");
            }
        };
    
        //使用person
        document.write(person.name + "," + person.age + "," + person.hobby[0] + "," + person.hobby[1] + "<br>");
        person.eat();
    </script>
    </html>
    

6.3、繼承

  • 繼承:讓類與類產生子父類的關系,子類可以使用父類有權限的成員,

  • 繼承關鍵字:extends

  • 頂級父類:Object

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>繼承</title>
    </head>
    <body>
        
    </body>
    <script>
        //定義Person類
        class Person{
            //構造方法
            constructor(name,age){
                this.name = name;
                this.age = age;
            }
    
            //eat方法
            eat(){
                document.write("吃飯...");
            }
        }
    
        //定義Worker類繼承Person
        class Worker extends Person{
            constructor(name,age,salary){
                super(name,age);
                this.salary = salary;
            }
    
            show(){
                document.write(this.name + "," + this.age + "," + this.salary + "<br>");
            }
        }
    
        //使用Worker
        let w = new Worker("張三",23,60000);
        w.show();
        w.eat();
    </script>
    </html>
    

6.4、小結

  • 面向物件

    把相關的資料和方法組織為一個整體來看待,從更高的層次來進行系統建模,更貼近事物的自然運行模式,

  • 類的定義

    class 類{} 字面量定義

  • 類的使用

    let 物件名 = new 類名(); 物件名.變數名 物件名.方法名()

  • 繼承

    讓類和類產生子父類關系,提高代碼的復用性和維護性,

    子類 extends 父類

    Object 頂級父類

7、JavaScript內置物件

7.1、Number

  • 方法介紹
    在這里插入圖片描述
  • 代碼實作
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Number</title>
</head>
<body>
    
</body>
<script>
    //1. parseFloat()  將傳入的字串浮點數轉為浮點數
    document.write(Number.parseFloat("3.14") + "<br>");

    //2. parseInt()    將傳入的字串整數轉為整數
    document.write(Number.parseInt("100") + "<br>");
    document.write(Number.parseInt("200abc") + "<br>"); // 從數字開始轉換,直到不是數字為止

</script>
</html>

7.2、Math

  • 方法介紹

在這里插入圖片描述

  • 代碼實作
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Math</title>
</head>
<body>
    
</body>
<script>
    //1. ceil(x) 向上取整
    document.write(Math.ceil(4.4) + "<br>");    // 5
    
    //2. floor(x) 向下取整
    document.write(Math.floor(4.4) + "<br>");   // 4
    
    //3. round(x) 把數四舍五入為最接近的整數
    document.write(Math.round(4.1) + "<br>");   // 4
    document.write(Math.round(4.6) + "<br>");   // 5
    
    //4. random() 亂數,回傳的是0.0-1.0之間范圍(含頭不含尾)
    document.write(Math.random() + "<br>"); // 亂數
    
    //5. pow(x,y) 冪運算 x的y次方
    document.write(Math.pow(2,3) + "<br>"); // 8
</script>
</html>

7.3、Date

  • 方法說明

    • 構造方法
      在這里插入圖片描述

    • 成員方法

在這里插入圖片描述

  • 代碼實作
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Date</title>
</head>
<body>
    
</body>
<script>
    //構造方法
    //1. Date()  根據當前時間創建物件
    let d1 = new Date();
    document.write(d1 + "<br>");

    //2. Date(value) 根據指定毫秒值創建物件
    let d2 = new Date(10000);
    document.write(d2 + "<br>");

    //3. Date(year,month,[day,hours,minutes,seconds,milliseconds]) 根據指定欄位創建物件(月份是0~11)
    let d3 = new Date(2222,2,2,20,20,20);
    document.write(d3 + "<br>");

    //成員方法
    //1. getFullYear() 獲取年份
    document.write(d3.getFullYear() + "<br>");

    //2. getMonth() 獲取月份
    document.write(d3.getMonth() + "<br>");

    //3. getDate() 獲取天數
    document.write(d3.getDate() + "<br>");

    //4. toLocaleString() 回傳本地日期格式的字串
    document.write(d3.toLocaleString());
</script>
</html>

7.4、String

  • 方法說明

    • 構造方法

在這里插入圖片描述

  • 成員方法

在這里插入圖片描述

  • 代碼實作
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>String</title>
</head>
<body>
    
</body>
<script>
    //1. 構造方法創建字串物件
    let s1 = new String("hello");
    document.write(s1 + "<br>");

    //2. 直接賦值
    let s2 = "hello";
    document.write(s2 + "<br>");

    //屬性
    //1. length   獲取字串的長度
    document.write(s2.length + "<br>");

    //成員方法
    //1. charAt(index)     獲取指定索引處的字符
    document.write(s2.charAt(1) + "<br>");

    //2. indexOf(value)    獲取指定字串出現的索引位置
    document.write(s2.indexOf("l") + "<br>");

    //3. substring(start,end)   根據指定索引范圍截取字串(含頭不含尾)
    document.write(s2.substring(2,4) + "<br>");

    //4. split(value)   根據指定規則切割字串,回傳陣列
    let s3 = "張三,23,男";
    let arr = s3.split(",");
    for(let i = 0; i < arr.length; i++) {
        document.write(arr[i] + "<br>");
    }

    //5. replace(old,new)   使用新字串替換老字串
    let s4 = "你會不會跳傘啊?讓我落地成盒,你妹的,";
    let s5 = s4.replace("你妹的","***");
    document.write(s5 + "<br>");
</script>
</html>

7.5、RegExp

正則運算式:是一種對字串進行匹配的規則,
在這里插入圖片描述

  • 方法說明

    • 構造方法&成員方法

在這里插入圖片描述

  • 規則

在這里插入圖片描述

  • 代碼實作
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>RegExp</title>
</head>
<body>
    
</body>
<script>
    //1.驗證手機號
    //規則:第一位1,第二位358,第三到十一位必須是數字,總長度11
    let reg1 = /^[1][358][0-9]{9}$/;
    document.write(reg1.test("18688888888") + "<br>");

    //2.驗證用戶名
    //規則:字母、數字、下劃線組成,總長度4~16
    let reg2 = /^[a-zA-Z_0-9]{4,16}$/;
    document.write(reg2.test("zhang_san123"));
</script>
</html>

7.6、Array

  • 成員方法

在這里插入圖片描述

  • 代碼實作
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Array</title>
</head>
<body>
    
</body>
<script>

    let arr = [1,2,3,4,5];

    //1. push(元素)    添加元素到陣列的末尾
    arr.push(6);
    document.write(arr + "<br>");

    //2. pop()         洗掉陣列末尾的元素
    arr.pop();
    document.write(arr + "<br>");

    //3. shift()       洗掉陣列最前面的元素
    arr.shift();
    document.write(arr + "<br>");

    //4. includes(元素)  判斷陣列中是否包含指定的元素
    document.write(arr.includes(2) + "<br>");

    //5. reverse()      反轉陣列元素
    arr.reverse();
    document.write(arr + "<br>");

    //6. sort()         對陣列元素排序
    arr.sort();
    document.write(arr + "<br>");

</script>
</html>

7.7、Set

JavaScript 中的 Set 集合,元素唯一,存取順序一致,

  • 方法說明

在這里插入圖片描述

  • 代碼實作
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Set</title>
</head>
<body>
    
</body>
<script>
    // Set()   創建集合物件
    let s = new Set();

    // add(元素)   添加元素
    s.add("a");
    s.add("b");
    s.add("c");
    s.add("c");

    // size屬性    獲取集合的長度
    document.write(s.size + "<br>");    // 3

    // keys()      獲取迭代器物件
    let st = s.keys();
    for(let i = 0; i < s.size; i++){
        document.write(st.next().value + "<br>");
    }

    // delete(元素) 洗掉指定元素
    document.write(s.delete("c") + "<br>");
    let st2 = s.keys();
    for(let i = 0; i < s.size; i++){
        document.write(st2.next().value + "<br>");
    }
</script>
</html>

7.8、Map

JavaScript 中的 Map 集合,key 唯一,存取順序一致,

  • 方法說明
    在這里插入圖片描述

  • 代碼實作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Map</title>
</head>
<body>
    
</body>
<script>
    // Map()   創建Map集合物件
    let map = new Map();

    // set(key,value)  添加元素
    map.set("張三",23);
    map.set("李四",24);
    map.set("李四",25);

    // size屬性     獲取集合的長度
    document.write(map.size + "<br>");

    // get(key)     根據key獲取value
    document.write(map.get("李四") + "<br>");

    // entries()    獲取迭代器物件
    let et = map.entries();
    for(let i = 0; i < map.size; i++){
        document.write(et.next().value + "<br>");
    }

    // delete(key)  根據key洗掉鍵值對
    document.write(map.delete("李四") + "<br>");
    let et2 = map.entries();
    for(let i = 0; i < map.size; i++){
        document.write(et2.next().value + "<br>");
    }
</script>
</html>

7.9、Json

  • JSON(JavaScript Object Notation):是一種輕量級的資料交換格式,

    • 它是基于 ECMAScript 規范的一個子集,采用完全獨立于編程語言的文本格式來存盤和表示資料,
    • 簡潔和清晰的層次結構使得 JSON 成為理想的資料交換語言,易于人閱讀和撰寫,同時也易于計算機決議和 生成,并有效的提升網路傳輸效率,
      在這里插入圖片描述
  • 方法說明

在這里插入圖片描述

  • 代碼實作
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JSON</title>
</head>
<body>
    
</body>
<script>
    //定義天氣物件
    let weather = {
        city : "北京",
        date : "2088-08-08",
        wendu : "10° ~ 23°",
        shidu : "22%"
    };

    //1.將天氣物件轉換為JSON格式的字串
    let str = JSON.stringify(weather);
    document.write(str + "<br>");

    //2.將JSON格式字串決議成JS物件
    let weather2 = JSON.parse(str);
    document.write("城市:" + weather2.city + "<br>");
    document.write("日期:" + weather2.date + "<br>");
    document.write("溫度:" + weather2.wendu + "<br>");
    document.write("濕度:" + weather2.shidu + "<br>");
</script>
</html>

7.10、表單校驗

  • 案例說明

在這里插入圖片描述

  • 代碼實作
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>表單校驗</title>
    <link rel="stylesheet" href="css/style.css"></link>
</head>
<body>
    <div class="login-form-wrap">
        <h1>黑馬程式員</h1>
        <form class="login-form" action="#" id="regist" method="get" autocomplete="off">
            <label>
                <input type="text" id="username" name="username" placeholder="Username..." value="">
            </label>
            <label>
                <input type="password" id="password" name="password" placeholder="Password..." value="">
            </label>
            <input type="submit" value="注冊">
        </form>
    </div>
</body>
<script>
    //1.為表單系結提交事件
    document.getElementById("regist").onsubmit = function() {
        //2.獲取填寫的用戶名和密碼
        let username = document.getElementById("username").value;
        let password = document.getElementById("password").value;

        //3.判斷用戶名是否符合規則  4~16位純字母
        let reg1 = /^[a-zA-Z]{4,16}$/;
        if(!reg1.test(username)) {
            alert("用戶名不符合規則,請輸入4到16位的純字母!");
            return false;
        }

        //4.判斷密碼是否符合規則  6位純數字
        let reg2 = /^[\d]{6}$/;
        if(!reg2.test(password)) {
            alert("密碼不符合規則,請輸入6位純數字的密碼!");
            return false;
        }

        //5.如果所有條件都不滿足,則提交表單
        return true;
    }
    
</script>
</html>

7.11、小結

  • 內置物件是 JavaScript 提供的帶有屬性和方法的特殊資料型別,
  • 數字日期 Number Math Date
  • 字串 String RegExp
  • 陣列集合 Array Set Map
  • 結構化資料 JSON

8、JavaScript BOM

  • BOM(Browser Object Model):瀏覽器物件模型,
  • 將瀏覽器的各個組成部分封裝成不同的物件,方便我們進行操作,

在這里插入圖片描述

8.1、Windows視窗物件

  • 定時器
    • 唯一標識 setTimeout(功能,毫秒值):設定一次性定時器,
    • clearTimeout(標識):取消一次性定時器,
    • 唯一標識 setInterval(功能,毫秒值):設定回圈定時器,
    • clearInterval(標識):取消回圈定時器,
  • 加載事件
    • window.onload:在頁面加載完畢后觸發此事件的功能,
  • 代碼實作
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>window視窗物件</title>
    <script>
        //一、定時器
        function fun(){
            alert("該起床了!");
        }
    
        //設定一次性定時器
        //let d1 = setTimeout("fun()",3000);
        //取消一次性定時器
        //clearTimeout(d1);
    
        //設定回圈定時器
        //let d2 = setInterval("fun()",3000);
        //取消回圈定時器
        //clearInterval(d2);
    
        //加載事件
        window.onload = function(){
            let div = document.getElementById("div");
            alert(div);
        }
    </script>
</head>
<body>
    <div id="div">dddd</div>
</body>
<!-- <script>
    //一、定時器
    function fun(){
        alert("該起床了!");
    }

    //設定一次性定時器
    //let d1 = setTimeout("fun()",3000);
    //取消一次性定時器
    //clearTimeout(d1);

    //設定回圈定時器
    //let d2 = setInterval("fun()",3000);
    //取消回圈定時器
    //clearInterval(d2);

    //加載事件
    let div = document.getElementById("div");
    alert(div);
</script> -->
</html>

8.2、Location地址欄物件

  • href 屬性

    就是瀏覽器的地址欄,我們可以通過為該屬性設定新的 URL,使瀏覽器讀取并顯示新的 URL 的內容,

在這里插入圖片描述

  • 代碼實作
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>location地址欄物件</title>
    <style>
        p{
            text-align: center;
        }
        span{
            color: red;
        }
    </style>
</head>
<body>
    <p>
        注冊成功!<span id="time">5</span>秒之后自動跳轉到首頁...
    </p>
</body>
<script>
    //1.定義方法,改變秒數,跳轉頁面
    let num = 5;
    function showTime() {
        num--;

        if(num <= 0) {
            //跳轉首頁
            location.href = "index.html";
        }

        let span = document.getElementById("time");
        span.innerHTML = num;
    }

    //2.設定回圈定時器,每1秒鐘執行showTime方法
    setInterval("showTime()",1000);
</script>
</html>

8.3、案例-動態廣告

  • 案例分析和實作
<!-- 廣告圖片 -->
<img src="img/ad_big.jpg" id="ad_big" width="100%"/>
  • 在 css 樣式中,display 屬性可以控制元素是否顯示
style="display: none;"
  • 設定定時器,3 秒后顯示廣告圖片
//1.設定定時器,3秒后顯示廣告圖片
setTimeout(function(){
    let img = document.getElementById("ad_big");
    img.style.display = "block";
},3000);
  • 設定定時器,3 秒后隱藏廣告圖片
//2.設定定時器,3秒后隱藏廣告圖片
setTimeout(function(){
let img = document.getElementById("ad_big");
img.style.display = "none";
},6000);

8.4、小結

  • **BOM(Browser Object Model):**瀏覽器物件模型,
  • 將瀏覽器的各個組成部分封裝成不同的物件,方便我們進行操作,
    • Window:視窗物件
    • Location:地址欄物件
    • Navigator:瀏覽器物件
    • History:當前視窗歷史記錄物件
    • Screen:顯示幕螢屏物件
  • Window 視窗物件
    • setTimeout()、clearTimeout():一次性定時器
    • setInterval()、clearInterval():回圈定時器
    • onload 事件:頁面加載完畢觸發執行功能
  • Location 地址欄物件 href 屬性:跳轉到指定的 URL 地址

9、JavaScript封裝

封裝思想

  • **封裝:**將復雜的操作進行封裝隱藏,對外提供更加簡單的操作,

  • 獲取元素的方法

    • document.getElementById(id值):根據 id 值獲取元素
    • document.getElementsByName(name值):根據 name 屬性值獲取元素們
    • document.getElementsByTagName(標簽名):根據標簽名獲取元素們
  • 代碼實作

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>封裝</title>
    </head>
    <body>
        <div id="div1">div1</div>
        <div name="div2">div2</div>
    </body>
    <script src="my.js"></script>
    <script>
        let div1 = getById("div1");
        alert(div1);
    
        // let div1 = document.getElementById("div1");
        // alert(div1);
    
        // let divs = document.getElementsByName("div2");
        // alert(divs.length);
    
        // let divs2 = document.getElementsByTagName("div");
        // alert(divs2.length);
    </script>
    </html>
    

    js封裝

    function getById(id){
        return document.getElementById(id);
    }
    
    function getByName(name) {
        return document.getElementsByName(name);
    }
    
    function getByTag(tag) {
        return document.getElementsByTagName(tag);
    }
    

我們之前的操作都是基于原生 JavaScript 的,比較繁瑣, JQuery 是一個前端框架技術,針對 JavaScript 進行了一系列的封裝,使得操作變得非常簡單! 期待吧……

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/301991.html

標籤:其他

上一篇:【中秋】模擬太陽系行星的公轉

下一篇:[Vue專案實戰]登錄功能實作

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • vue移動端上拉加載

    可能做得過于簡單或者比較low,請各位大佬留情,一起探討技術 ......

    uj5u.com 2020-09-10 04:38:07 more
  • 優美網站首頁,頂部多層導航

    一個個人用的瀏覽器首頁,可以把一下常用的網站放在這里,平常打開會比較方便。 第一步,HTML代碼 <script src=https://www.cnblogs.com/szharf/p/"js/jquery-3.4.1.min.js"></script> <div id="navigate"> <ul> <li class="labels labels_1"> ......

    uj5u.com 2020-09-10 04:38:47 more
  • 頁面為要加<!DOCTYPE html>

    最近因為寫一個js函式,需要用到$(window).height(); 由于手寫demo的時候,過于自信,其實對前端方面的認識也不夠體系,用文本檔案直接敲出來的html代碼,第一行沒有加上<!DOCTYPE html> 導致了$(window).height();的結果直接是整個document的高 ......

    uj5u.com 2020-09-10 04:38:52 more
  • WordPress網站程式手動升級要做好資料備份

    WordPress博客網站程式在進行升級前,必須要做好網站資料的備份,這個問題良家佐言是遇見過的;在剛開始接觸WordPress博客程式的時候,因為升級問題和博客網站的修改的一些嘗試,良家佐言是吃盡了苦頭。因為購買的是西部數碼的空間和域名,每當佐言把自己的WordPress博客網站搞到一塌糊涂的時候 ......

    uj5u.com 2020-09-10 04:39:30 more
  • WordPress程式不能升級為5.4.2版本的原因

    WordPress是一款個人博客系統,受到英文博客愛好者和中文博客愛好者的追捧,并逐步演化成一款內容管理系統軟體;它是使用PHP語言和MySQL資料庫開發的,用戶可以在支持PHP和MySQL資料庫的服務器上使用自己的博客。每一次WordPress程式的更新,就會牽動無數WordPress愛好者的心, ......

    uj5u.com 2020-09-10 04:39:49 more
  • 使用CSS3的偽元素進行首字母下沉和首行改變樣式

    網頁中常見的一種效果,首字改變樣式或者首行改變樣式,效果如下圖。 代碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ......

    uj5u.com 2020-09-10 04:40:09 more
  • 關于a標簽的講解

    什么是a標簽? <a> 標簽定義超鏈接,用于從一個頁面鏈接到另一個頁面。 <a> 元素最重要的屬性是 href 屬性,它指定鏈接的目標。 a標簽的語法格式:<a href=https://www.cnblogs.com/summerxbc/p/"指定要跳轉的目標界面的鏈接">需要展示給用戶看見的內容</a> a標簽 在所有瀏覽器中,鏈接的默認外觀如下: 未被訪問的鏈接帶 ......

    uj5u.com 2020-09-10 04:40:11 more
  • 前端輪播圖

    在需要輪播的頁面是引入swiper.min.js和swiper.min.css swiper.min.js地址: 鏈接:https://pan.baidu.com/s/15Uh516YHa4CV3X-RyjEIWw 提取碼:4aks swiper.min.css地址 鏈接:https://pan.b ......

    uj5u.com 2020-09-10 04:40:13 more
  • 如何設定html中的背景圖片(全屏顯示,且不拉伸)

    1 <style>2 body{background-image:url(https://uploadbeta.com/api/pictures/random/?key=BingEverydayWallpaperPicture); 3 background-size:cover;background ......

    uj5u.com 2020-09-10 04:40:16 more
  • Java學習——HTML詳解(上)

    HTML詳解 初識HTML Hyper Text Markup Language(超文本標記語言) 1 <!--DOCTYPE:告訴瀏覽器我們要使用什么規范--> 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <!--meta 描述性的標簽,描述一些 ......

    uj5u.com 2020-09-10 04:40:33 more
最新发布
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 07:59:23 more
  • 生產事故-走近科學之消失的JWT

    入職多年,面對生產環境,盡管都是小心翼翼,慎之又慎,還是難免捅出簍子。輕則滿頭大汗,面紅耳赤。重則系統停擺,損失資金。每一個生產事故的背后,都是寶貴的經驗和教訓,都是專案成員的血淚史。為了更好地防范和遏制今后的各類事故,特開此專題,長期更新和記錄大大小小的各類事故。有些是親身經歷,有些是經人耳傳口授 ......

    uj5u.com 2023-04-18 07:55:04 more
  • 記錄--Canvas實作打飛字游戲

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 打開游戲界面,看到一個畫面簡潔、卻又富有挑戰性的游戲。螢屏上,有一個白色的矩形框,里面不斷下落著各種單詞,而我需要迅速地輸入這些單詞。如果我輸入的單詞與螢屏上的單詞匹配,那么我就可以獲得得分;如果我輸入的單詞錯誤或者時間過長,那么我就會輸 ......

    uj5u.com 2023-04-04 08:35:30 more
  • 了解 HTTP 看這一篇就夠

    在學習網路之前,了解它的歷史能夠幫助我們明白為何它會發展為如今這個樣子,引發探究網路的興趣。下面的這張圖片就展示了“互聯網”誕生至今的發展歷程。 ......

    uj5u.com 2023-03-16 11:00:15 more
  • 藍牙-低功耗中心設備

    //11.開啟藍牙配接器 openBluetoothAdapter //21.開始搜索藍牙設備 startBluetoothDevicesDiscovery //31.開啟監聽搜索藍牙設備 onBluetoothDeviceFound //30.停止監聽搜索藍牙設備 offBluetoothDevi ......

    uj5u.com 2023-03-15 09:06:45 more
  • canvas畫板(滑鼠和觸摸)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>canves</title> <style> #canvas { cursor:url(../images/pen.png),crosshair; } #canvasdiv{ bo ......

    uj5u.com 2023-02-15 08:56:31 more
  • 手機端H5 實作自定義拍照界面

    手機端 H5 實作自定義拍照界面也可以使用 MediaDevices API 和 <video> 標簽來實作,和在桌面端做法基本一致。 首先,使用 MediaDevices.getUserMedia() 方法獲取攝像頭媒體流,并將其傳遞給 <video> 標簽進行渲染。 接著,使用 HTML 的 < ......

    uj5u.com 2023-01-12 07:58:22 more
  • 記錄--短視頻滑動播放在 H5 下的實作

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 短視頻已經無數不在了,但是主體還是使用 app 來承載的。本文講述 H5 如何實作 app 的視頻滑動體驗。 無聲勝有聲,一圖頂百辯,且看下圖: 網址鏈接(需在微信或者手Q中瀏覽) 從上圖可以看到,我們主要實作的功能也是本文要講解的有: ......

    uj5u.com 2023-01-04 07:29:05 more
  • 一文讀懂 HTTP/1 HTTP/2 HTTP/3

    從 1989 年萬維網(www)誕生,HTTP(HyperText Transfer Protocol)經歷了眾多版本迭代,WebSocket 也在期間萌芽。1991 年 HTTP0.9 被發明。1996 年出現了 HTTP1.0。2015 年 HTTP2 正式發布。2020 年 HTTP3 或能正... ......

    uj5u.com 2022-12-24 06:56:02 more
  • 【HTML基礎篇002】HTML之form表單超詳解

    ??一、form表單是什么

    ??二、form表單的屬性

    ??三、input中的各種Type屬性值

    ??四、標簽 ......

    uj5u.com 2022-12-18 07:17:06 more