<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      JavaScript

      JavaScript是一種廣泛用于網(wǎng)頁(yè)開發(fā)的腳本語言,可在瀏覽器中運(yùn)行,也可通過Node.js在服務(wù)器端運(yùn)行。

      一、JavaScript 基礎(chǔ)

      1. 引入方式

      • 內(nèi)嵌式: <script> 標(biāo)簽中直接編寫代碼
      <script>
        console.log("Hello, JavaScript!");
      </script>
      •  外鏈?zhǔn)剑?/strong>通過 src 屬性引入外部 .js 文件
      <script src="script.js"></script>
      • 行內(nèi)式:直接寫在 HTML 標(biāo)簽的事件屬性中(不推薦)
      <button onclick="alert('Hi')">點(diǎn)擊</button>

      2. 變量與數(shù)據(jù)類型

      • 變量聲明:let(塊級(jí)作用域)、const(常量)、var(函數(shù)級(jí)作用域,盡量避免)
      let age = 20;
      const name = "Alice";
      var isStudent = true; // 不推薦
      • 數(shù)據(jù)類型:
        • 基本類型:stringnumberbooleannullundefinedsymbol(ES6+)、bigint(ES11+)
        • 引用類型:object包括數(shù)組、函數(shù)、日期等)
      • 類型轉(zhuǎn)換:
      // 轉(zhuǎn)為字符串
      String(123); // "123"
      123 + ""; // "123"
      
      // 轉(zhuǎn)為數(shù)字
      Number("123"); // 123
      parseInt("123abc"); // 123
      parseFloat("3.14"); // 3.14

      與 let 和 var 的對(duì)比

      • const用于聲明常量,一旦賦值就不能重新賦值,具有塊級(jí)作用域。
      • let用于聲明變量,能夠重新賦值,同樣具有塊級(jí)作用域。
      • var早期用于聲明變量,可重新賦值,作用域是函數(shù)級(jí)或者全局級(jí),沒有塊級(jí)作用域。
      // const 示例
      const num = 10;
      // num = 20; // 這行代碼會(huì)報(bào)錯(cuò),因?yàn)?const 聲明的常量不能重新賦值
      
      // let 示例
      let count = 5;
      count = 15; // 可以重新賦值
      
      // var 示例
      var name = 'John';
      name = 'Jane'; // 可以重新賦值
      
      if (true) {
          let blockVar = 'block scoped with let';
          var functionVar = 'function scoped with var';
      }
      // console.log(blockVar); // 報(bào)錯(cuò),let 具有塊級(jí)作用域
      console.log(functionVar); // 可以訪問,var 沒有塊級(jí)作用域

      3. 運(yùn)算符

      • 算術(shù)運(yùn)算符:+-*/%(取余)、++--
      • 賦值運(yùn)算符:=+=-=*= 等
      • 比較運(yùn)算符:==(松散相等)、===(嚴(yán)格相等,推薦)、>< 等
      • 邏輯運(yùn)算符:&&(與)、||(或)、!(非)
      • 三元運(yùn)算符:條件 ? 表達(dá)式1 : 表達(dá)式2
      let result = 5 > 3 ? "大于" : "小于"; // "大于"

      4. 流程控制

      • 條件語句:
      if (age > 18) {
        console.log("成年");
      } else if (age === 18) {
        console.log("剛成年");
      } else {
        console.log("未成年");
      }
      • 循環(huán)語句:
      // for 循環(huán)
      for (let i = 0; i < 5; i++) {
        console.log(i);
      }
      
      // while 循環(huán)
      let j = 0;
      while (j < 5) {
        console.log(j);
        j++;
      }
      
      // for...of(遍歷數(shù)組/字符串)
      const arr = [1, 2, 3];
      for (const item of arr) {
        console.log(item);
      }

      二、數(shù)組與對(duì)象

      1. 數(shù)組(Array)

      • 創(chuàng)建數(shù)組:
      const arr = [1, 2, 3];
      const arr2 = new Array(4, 5, 6);
      • 常用方法
          • push()末尾添加元素
          • shift()刪除首個(gè)元素
          • unshift()開頭添加元素
          • slice(start, end)截取子數(shù)組(不修改原數(shù)組)
          • splice(start, deleteCount, ...items)修改數(shù)組(會(huì)修改原數(shù)組)
          • map()遍歷并返回新數(shù)組
          • filter()過濾元素
          • reduce()累加計(jì)算
      const numbers = [1, 2, 3, 4];
      const doubled = numbers.map(n => n * 2); // [2,4,6,8]
      const even = numbers.filter(n => n % 2 === 0); // [2,4]

      2. 對(duì)象(Object)

      • 創(chuàng)建對(duì)象:
      const person = {
        name: "Bob",
        age: 25,
        sayHi: function() {
          console.log("Hi");
        }
      };
      • 訪問屬性:
      person.name; // "Bob"
      person["age"]; // 25
      • 遍歷對(duì)象:
      for (const key in person) {
        console.log(key + ": " + person[key]);
      }

      三、函數(shù)

      1. 函數(shù)聲明與調(diào)用

      // 函數(shù)聲明
      function add(a, b) {
        return a + b;
      }
      
      // 函數(shù)表達(dá)式
      const multiply = function(a, b) {
        return a * b;
      };
      
      // 箭頭函數(shù)(ES6+)
      const divide = (a, b) => a / b;
      
      // 調(diào)用
      console.log(add(2, 3)); // 5

      2. 函數(shù)參數(shù)

      默認(rèn)參數(shù):

      function greet(name = "Guest") {
        console.log("Hello, " + name);
      }
      greet(); // "Hello, Guest"

      剩余參數(shù):

      function sum(...numbers) {
        return numbers.reduce((total, num) => total + num, 0);
      }
      sum(1, 2, 3); // 6

      四、DOM 操作(網(wǎng)頁(yè)交互)

      DOM(文檔對(duì)象模型)HTML的編程接口,JavaScript可通過DOM操作網(wǎng)頁(yè)元素。

      1. 獲取元素document

      document 屬于全局對(duì)象,代表整個(gè) HTML 文檔。是 DOM(文檔對(duì)象模型)的根節(jié)點(diǎn)。通過 document 對(duì)象,你可以訪問和操作網(wǎng)頁(yè)中的所有元素(如 <div><p><button> 等)、屬性、文本內(nèi)容等。能夠?qū)?HTML 文檔的內(nèi)容、結(jié)構(gòu)和樣式進(jìn)行訪問與修改。

      簡(jiǎn)單說:

      document 就像一個(gè) “入口”,JavaScript 通過它來 “連接” 并操作網(wǎng)頁(yè)內(nèi)容。比如你想獲取一個(gè)按鈕、修改一段文字、添加新元素,都需要從 document 開始。

      總結(jié):

      document 是 JavaScript 操作網(wǎng)頁(yè)的 “總?cè)肟凇?/strong>,所有對(duì) DOM 元素的訪問、修改、創(chuàng)建等操作,幾乎都需要通過 document 對(duì)象來實(shí)現(xiàn)。它就像一個(gè) “橋梁”,連接著 JavaScript 代碼和網(wǎng)頁(yè)的 HTML 結(jié)構(gòu)。

      2.getElementById

      這是 document 對(duì)象的一個(gè)方法,用于 通過 HTML 元素的 id 屬性獲取唯一元素 的 DOM 方法。根據(jù)指定的 id 值,從當(dāng)前文檔中查找并返回對(duì)應(yīng)的唯一元素。由于 HTML 規(guī)范中要求 id 在整個(gè)文檔中是唯一的(不能重復(fù)),因此該方法只會(huì)返回 一個(gè)元素(如果找到),或 null(如果未找到)。

      document.getElementById(idValue);
      • dValue字符串類型,要查找的元素的 id 屬性值(區(qū)分大小寫)。
      • 返回值:找到則返回對(duì)應(yīng)的 DOM 元素對(duì)象,未找到則返回 null

      示例:HTML結(jié)構(gòu)

      <div id="header">這是頭部</div>
      <p id="content">這是內(nèi)容</p>
      <button id="submitBtn">提交</button>

      JavaScript代碼

      // 獲取 id 為 "content" 的元素
      const contentElement = document.getElementById("content");
      console.log(contentElement); // 輸出 <p id="content">這是內(nèi)容</p>
      
      // 操作獲取到的元素(例如修改內(nèi)容)
      contentElement.textContent = "修改后的內(nèi)容";
      
      // 嘗試獲取不存在的 id,返回 null
      const nonExistent = document.getElementById("none");
      console.log(nonExistent); // 輸出 null

      特點(diǎn):

      1. 唯一性:由于 id 是唯一的,因此該方法只會(huì)返回單個(gè)元素(或 null,無需處理集合。
      2. 高效性:相比通過類名或標(biāo)簽名查找,getElementById 性能更好,因?yàn)闉g覽器會(huì)對(duì) id 建立快速索引。
      3. 大小寫敏感:例如 id="MyId" 和 id="myid" 會(huì)被視為不同的 id
      4. 只能從 document 調(diào)用:與 getElementsByClassName 不同,getElementById 只能通過 document 對(duì)象調(diào)用(不能在某個(gè)父元素內(nèi)查找,因?yàn)?nbsp;id 是全局唯一的)。

      注意事項(xiàng):

      • HTML 中存在重復(fù)的 id(不符合規(guī)范),該方法只會(huì)返回 第一個(gè) 匹配的元素。
      • 如果需要根據(jù)更復(fù)雜的條件(如類名、層級(jí)關(guān)系)查找元素,可使用 querySelector 等方法,但 getElementById 是獲取唯一元素的最直接方式。

      例如,以下代碼與 getElementById("submitBtn") 效果相同,但 getElementById 更簡(jiǎn)潔高效:

      // 等效但不推薦的寫法
      document.querySelector("#submitBtn"); // 通過 CSS 選擇器 #id 查找

      3.getElementsByClassName

      通過類名獲取 HTML 元素 的 DOM 方法。根據(jù)指定的 CSS 類名,從文檔中查找并返回所有包含該類名的元素集合。

      document.getElementsByClassName(className);
      // 或在某個(gè)父元素內(nèi)查找
      parentElement.getElementsByClassName(className);
      • className字符串,指定要查找的類名(多個(gè)類名用空格分隔,如 "active item")。
      • 返回值:一個(gè) 動(dòng)態(tài)更新的 HTMLCollection 集合(類似數(shù)組,但不是真正的數(shù)組),包含所有匹配的元素。

      特點(diǎn):

      1. 動(dòng)態(tài)性:返回的集合會(huì)實(shí)時(shí)反映文檔的變化(例如元素添加 / 移除類名時(shí),集合會(huì)自動(dòng)更新)。
      2. 范圍性:可在特定父元素內(nèi)查找(而非整個(gè)文檔),提高效率。
      3. 類名匹配:嚴(yán)格匹配類名(區(qū)分大小寫),且支持多類名(需同時(shí)包含所有類名才會(huì)被匹配)。

      示例:HTML結(jié)構(gòu)

      <div class="box">盒子1</div>
      <div class="box">盒子2</div>
      <div class="box active">盒子3(激活)</div>
      <p class="text">文本</p>

      JavaScript代碼

      // 1. 獲取整個(gè)文檔中所有 class 為 "box" 的元素
      const boxes = document.getElementsByClassName("box");
      console.log(boxes.length); // 輸出:3(3個(gè)含 "box" 類的元素)
      
      // 2. 遍歷集合(需用索引訪問,類似數(shù)組)
      for (let i = 0; i < boxes.length; i++) {
        console.log(boxes[i].textContent); // 依次輸出:盒子1、盒子2、盒子3(激活)
      }
      
      // 3. 在特定父元素內(nèi)查找(假設(shè)頁(yè)面有個(gè) id 為 "container" 的容器)
      const container = document.getElementById("container");
      const activeItems = container.getElementsByClassName("active");
      // 只查找 container 內(nèi)部 class 為 "active" 的元素
      
      // 4. 多類名匹配(同時(shí)包含 "box" 和 "active" 的元素)
      const activeBoxes = document.getElementsByClassName("box active");
      console.log(activeBoxes.length); // 輸出:1(僅盒子3匹配)

      注意事項(xiàng):

      • 返回的 HTMLCollection 是類數(shù)組對(duì)象,不支持 forEachmap 等數(shù)組方法,需先轉(zhuǎn)換為數(shù)組(如 Array.from(boxes))才能使用。
      • 若需更靈活的選擇器(如結(jié)合標(biāo)簽名、ID 等),可使用 querySelectorAll(返回靜態(tài)的 NodeList 集合)。

      例如,用 querySelectorAll 實(shí)現(xiàn)類似功能:

      const boxes = document.querySelectorAll(".box"); // 靜態(tài)集合,不動(dòng)態(tài)更新
      

      4.getElementsByTagName

      用于 通過 HTML 標(biāo)簽名獲取元素 的 DOM 方法。根據(jù)指定的 HTML 標(biāo)簽名稱(如 divpimg 等),從文檔或指定父元素中查找并返回所有匹配該標(biāo)簽的元素集合。

      // 從整個(gè)文檔中查找
      document.getElementsByTagName(tagName);
      
      // 從指定父元素內(nèi)查找(縮小范圍)
      parentElement.getElementsByTagName(tagName);
      • tagName字符串,指定要查找的標(biāo)簽名(如 "div""p"不區(qū)分大小寫,但習(xí)慣用小寫)。
      • 返回值:一個(gè) 動(dòng)態(tài)更新的 HTMLCollection 集合(類數(shù)組對(duì)象),包含所有匹配的元素;若沒有匹配元素,返回空集合。

      示例:HTML結(jié)構(gòu)

      <div>盒子1</div>
      <p>段落1</p>
      <div>盒子2</div>
      <p>段落2</p>
      <ul>
        <li>列表項(xiàng)1</li>
        <li>列表項(xiàng)2</li>
      </ul>

      JavaScript代碼

      // 1. 獲取整個(gè)文檔中所有 <div> 標(biāo)簽的元素
      const divs = document.getElementsByTagName("div");
      console.log(divs.length); // 輸出:2(2個(gè) div 元素)
      
      // 2. 遍歷集合(通過索引訪問)
      for (let i = 0; i < divs.length; i++) {
        console.log(divs[i].textContent); // 依次輸出:盒子1、盒子2
      }
      
      // 3. 在指定父元素內(nèi)查找(例如只找 <ul> 中的 <li>)
      const ul = document.getElementsByTagName("ul")[0]; // 先獲取 ul 元素
      const lis = ul.getElementsByTagName("li");
      console.log(lis.length); // 輸出:2(ul 內(nèi)的 2 個(gè) li 元素)
      
      // 4. 不區(qū)分大小寫(查找 <P> 等效于 <p>)
      const paragraphs = document.getElementsByTagName("P");
      console.log(paragraphs.length); // 輸出:2(2個(gè) p 元素)

      特點(diǎn):

      1. 動(dòng)態(tài)性:返回的 HTMLCollection 會(huì)實(shí)時(shí)反映文檔變化(例如新增 / 刪除標(biāo)簽時(shí),集合會(huì)自動(dòng)更新)。
      2. 范圍靈活:可在整個(gè)文檔中查找,也可在某個(gè)父元素內(nèi)查找(縮小查找范圍,提高效率)。
      3. 標(biāo)簽名匹配:不區(qū)分大小寫(如 "DIV" 和 "div" 效果相同)。
      4. 類數(shù)組特性:返回的集合不是真正的數(shù)組,不支持 forEachmap 等數(shù)組方法,需轉(zhuǎn)換為數(shù)組(如 Array.from(divs))后使用。

      注意事項(xiàng):

      • 若需獲取所有標(biāo)簽(如整個(gè)文檔的所有元素),可傳入 "*" 作為參數(shù):
      const allElements = document.getElementsByTagName("*");
      • 與 querySelectorAll返回靜態(tài) NodeList)相比,getElementsByTagName 更適合需要?jiǎng)討B(tài)跟蹤元素變化的場(chǎng)景。
      例如,用 querySelectorAll 實(shí)現(xiàn)類似功能(返回靜態(tài)集合):
      const divs = document.querySelectorAll("div"); // 靜態(tài)集合,不隨文檔變化

      5.querySelector

       通過 CSS 選擇器語法獲取元素 的 DOM 方法,它能根據(jù)靈活的選擇器規(guī)則,從文檔或指定父元素中查找并返回 第一個(gè)匹配的元素。

      支持使用各種 CSS 選擇器(如類選擇器、ID 選擇器、標(biāo)簽選擇器、后代選擇器等)來定位元素,是獲取元素的 “萬能工具”,尤其適合復(fù)雜條件的查找。

      // 從整個(gè)文檔中查找第一個(gè)匹配的元素
      document.querySelector(selector);
      
      // 從指定父元素內(nèi)查找第一個(gè)匹配的元素
      parentElement.querySelector(selector);
      • selector字符串,符合 CSS 語法的選擇器(如 #id.classdivdiv .active 等)。
      • 返回值:找到則返回第一個(gè)匹配的 DOM 元素,未找到則返回 null

      示例:HTML結(jié)構(gòu)

      <div class="box">盒子1</div>
      <div class="box highlight">盒子2(高亮)</div>
      <p id="intro">介紹文本</p>
      <ul>
        <li class="item">項(xiàng)目1</li>
        <li class="item">項(xiàng)目2</li>
      </ul>

      JavaScript代碼

      // 1. 通過 ID 選擇器(#id)獲取元素(等效于 getElementById)
      const intro = document.querySelector("#intro");
      console.log(intro.textContent); // 輸出:介紹文本
      
      // 2. 通過類選擇器(.class)獲取第一個(gè)匹配元素
      const firstBox = document.querySelector(".box");
      console.log(firstBox.textContent); // 輸出:盒子1
      
      // 3. 通過標(biāo)簽選擇器獲取元素
      const firstLi = document.querySelector("li");
      console.log(firstLi.textContent); // 輸出:項(xiàng)目1
      
      // 4. 復(fù)雜選擇器(后代選擇器 + 類選擇器)
      // 查找 ul 中 class 為 item 的第一個(gè)元素
      const ulItem = document.querySelector("ul .item");
      console.log(ulItem.textContent); // 輸出:項(xiàng)目1
      
      // 5. 在指定父元素內(nèi)查找(如只在 .highlight 元素內(nèi)查找)
      const highlightBox = document.querySelector(".highlight");
      const nested = highlightBox.querySelector("span"); // 假設(shè) .highlight 內(nèi)有 span

      特點(diǎn):

      1. 支持復(fù)雜選擇器:可使用 CSS 中的各種組合選擇器(如 div > p 子元素選擇器、[name="username"] 屬性選擇器等),靈活性遠(yuǎn)超 getElementById 等方法。
      // 查找 name 屬性為 "email" 的 input 元素
      const emailInput = document.querySelector('input[name="email"]');
      1. 返回第一個(gè)匹配元素:即使有多個(gè)匹配元素,也只返回第一個(gè)。
      2. 靜態(tài)結(jié)果:返回的元素不會(huì)隨文檔變化動(dòng)態(tài)更新(與 getElementsByClassName 等返回的動(dòng)態(tài)集合不同)。
      3. 范圍靈活:可在整個(gè)文檔中查找,也可限制在某個(gè)父元素內(nèi)部查找。

      注意事項(xiàng):

      • 選擇器語法必須符合 CSS 規(guī)范,否則會(huì)報(bào)錯(cuò)(例如選擇器中有錯(cuò)誤符號(hào))。
      • 若需要獲取 所有匹配的元素,可使用 querySelectorAll(返回一個(gè)靜態(tài)的 NodeList 集合)。
      例如,獲取所有 li 元素:
      const allLis = document.querySelectorAll("li"); // 返回所有 li 的集合

      總結(jié):querySelector 是獲取元素的高效且靈活的方法,尤其適合需要復(fù)雜選擇邏輯的場(chǎng)景,是實(shí)際開發(fā)中常用的 DOM 操作工具

       

      posted @ 2025-10-31 19:50  自學(xué)小天才  閱讀(3)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 人妻内射一区二区在线视频| 国产激情一区二区三区不卡| 久久热这里只有精品国产| 国产精品点击进入在线影院高清| 女同另类激情在线三区| 久久国产欧美日韩精品图片| 国产亚洲欧洲av综合一区二区三区| 国产高清乱码又大又圆| 邻居少妇张开腿让我爽了一夜| 精品国模一区二区三区| 免费国产拍久久受拍久久| 成人免费av色资源日日| 亚洲最大成人免费av| 粉嫩少妇内射浓精videos| 狠狠色婷婷久久综合频道日韩| 亚洲精品电影院| 亚洲av中文久久精品国内| 欧美激情内射喷水高潮| 麻豆国产传媒精品视频| 免费人成在线观看网站| 性做久久久久久久久| 无遮挡aaaaa大片免费看| 亚洲精品漫画一二三区| 欧美国产精品不卡在线观看| 延长县| 国产69成人精品视频免费| 免费无码黄十八禁网站| 成人特黄A级毛片免费视频| 中文字幕亚洲综合久久综合 | 国产超高清麻豆精品传媒麻豆精品 | 色视频不卡一区二区三区| www欧美在线观看| AV无码免费不卡在线观看| 日韩av无码一区二区三区| 久久精品久久电影免费理论片| 日韩深夜福利视频在线观看| 一区二区三区四区亚洲自拍| 日韩av在线不卡一区二区| 亚洲第一区二区快射影院| 亚洲尤码不卡av麻豆| 高级艳妇交换俱乐部小说|