JavaWeb 課堂筆記 —— 02 JavaScript

本系列為筆者學習JavaWeb的課堂筆記,視頻資源為B站黑馬程序員出品的《黑馬程序員JavaWeb開發教程,實現javaweb企業開發全流程(涵蓋Spring+MyBatis+SpringMVC+SpringBoot等)》,章節分布參考視頻教程,為同樣學習JavaWeb系列課程的同學們提供參考。

01 什么是 JavaScript ?

JavaScript 是一門跨平臺、面向對象的腳本語言,其使得網頁可交互。

02 JavaScript 引入方式

標簽:<script>

<!-- 內部腳本 -->
<script>alert("Hello JavaScript");
</script><!-- 外部腳本 -->
<script src="demo.js"></script>

03 JavaScript 基礎語法

① 輸出語句

<script>window.alert("Hello JavaScript"); //彈出警告框document.write("Hello JavaScript"); //寫入HTML頁面console.log("Hello JavaScript"); //瀏覽器控制臺輸出(F12)
</script>

注:console / k?n?so?l / 控制臺。

② 變量

var a = 20;
a = "張藍天";

注:var 為全局變量,可重復定義。

③ 數據類型

在這里插入圖片描述

var a = 20;
alert(typeof a); //獲取數據類型

④ 運算符

在這里插入圖片描述

在這里插入圖片描述

⑤ 流程控制語句

在這里插入圖片描述

04 JavaScript 函數

//定義
function add(a, b){return a + b;
}var add = function(a, b){return a + b;
}//調用
var result = add(1, 2);
alert(result);

05 JavaScript 對象

① Array

var arr = new Array(1, 2, 3, 4);
var arr = [1, 2, 3, 4];arr[10] = "hello";
arr[9] = 'a';
arr[8] = true;

注:JavaScript數組相當于Java集合,其長度可變,類型可變。

在這里插入圖片描述

<script>var arr = [1, 2, 3, 4];for(int i=0; i<arr.length; ++i){console.log(arr[i]);}arr.forEach(function(e){console.log(e); //僅遍歷有值的元素}) arr.forEach( (e) => {console.log(e);} ) //ES6 箭頭函數 (...) => {...}arr.push(7, 8, 9);console.log(arr);arr.splice(2, 2); //start numberconsole.log(arr);
</script>

② String

var str = new String("Hello JavaScript");
var str = "Hello JavaScript";

在這里插入圖片描述

<script>var str = "  Hello JavaScript  ";console.log(str.length);console.log(str.charAt(4)); //oconsole.log(str.indexOf(o)); //4var str2 = str.trim();console.log(str2);console.log(str2.substring(0, 5)) //[start, end)
</script>

③ 對象

var user{//屬性名:屬性值name: "Tom";age: 10;gender: "male";//方法eat: function(){alert("干飯!");}drink(){alert("喝酒!");}
}alert(user.name);
user.eat();

④ JSON

JavaScript Object Notation為通過JavaScript對像標記法書寫的文本,由于其語法簡單,層次結構鮮明,多用于作為數據載體,在網絡中進行數據傳輸。

在這里插入圖片描述

var 變量名 = '{"key1": value1, "key2": value2}'; //JSON字符串var jsonStr = '{"name": "Tom", "age": 18, "address": {"北京", "上海", "西安"}}';//JSON字符串 -> JavaScript對象
var obj = JSON.parse(jsonStr);
alert(obj.name);//JavaScript對象 -> JSON字符串
var str = JSON.string(obj);
alert(atr);

⑤ BOM

Browser Object Model為瀏覽器對象模型,允許JavaScript與瀏覽器對話,JavaScript將瀏覽器的各個組成部分封裝為對象。

  • Window:瀏覽器窗口對象
  • Navigator:瀏覽器對象
  • Screen:屏幕對象
  • History:歷史記錄對象
  • Location:地址欄對象

Ⅰ 瀏覽器窗口對象Window

window.alert("Hello Window");
alert("Hello Window");

在這里插入圖片描述

<script>//confirm - 對話框 - 確認:true,取消:falsevar flag = confirm("確定刪除嗎?");alert(flag);//setInterval - 定時器 - 無限循環var i = 0;setInterval(function(){i++;console.log("第"i"次振翅")}, 2000)//setTimeout() - 延遲器 - 延期執行setInterval(function(){alert("Hello JavaScript");}, 3000) //毫秒
</script>

Ⅱ 地址欄對象Location

window.location.href;
location.href;

⑤ DOM

Document Object Model為文檔對象模型,將標記語言的各部分封裝為對象。

  • Document:整個文檔對象
  • Element:元素(標簽)對象
  • Attribute:屬性對象
  • Text:文本對象
  • Comment:注釋對象

在這里插入圖片描述

JavaScript通過DOM 就能夠對HTML文檔進行操作:

  • 改變HTML元素的內容
  • 改變HTML元素的樣式(CSS)
  • HTML DOM事件作出反應
  • 添加和制除HTML元素

Ⅰ 獲取Element元素(標簽)對象

在這里插入圖片描述

Ⅱ 修改Element元素(標簽)內容

<body><img id="h1" src="img/off.gif"> <br><br><div class="cls">傳智教育</div> <br><div class="cls">黑馬程序員</div> <br><input type="checkbox" name="hobby"> 電影<input type="checkbox" name="hobby"> 旅游<input type="checkbox" name="hobby"> 游戲
</body><script>//點亮燈泡var img = document.getElementById("h1");img.src = "img/on.gif";//very goodvar divs = document.getElementByClassName('cls');var div1 = divs[0];var div2 = divs[1];div1.innerHTML += "<font color="red">very good</font>"; div2.innerHTML += "<font color="red">very good</font>";//勾選方框var ins = document.getElementByName("hobby");for(let i=0; i<ins.length; ++i){const check = ins[i];check.checked = "true"; //問AI唄~}
</script>

在這里插入圖片描述

06 JavaScript 事件監聽

HTML事件是發生在HTML元素上的事情,比如按鈕被點擊、鼠標移動到元素上或者按下鍵盤按鍵,JavaScript可以在事件被偵測到時執行代碼。

在這里插入圖片描述

① 事件綁定

方式一:通過HTML標簽中的屬性進行綁定

<body>
<input type="button" onclick="on()" value="按鈕1">
</body>
<script>function on(){alert('我被點擊啦!');}
</script>

方式二:通過DOM元素屬性綁定

<body>
<input type="button" id="btn" balue="按鈕2">
</body><script>document.getElementById("btn").onclick=function(){alert('我被點擊啦!');}
</script>

在這里插入圖片描述

② 常見事件

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

③ 案例

在這里插入圖片描述

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>JS-事件-案例</title>
</head>
<body><img id="light" src="img/on.gif"> <br><input type="button" value="點亮" onclick="on()"> <input type="button"  value="熄滅" onclick="off()"><br> <br><input type="text" id="name" value="ITCAST" onfocus="lower()" onblur="upper()"><br> <br><input type="checkbox" name="hobby"> 電影<input type="checkbox" name="hobby"> 旅游<input type="checkbox" name="hobby"> 游戲<br><input type="button" value="全選" onclick="checkAll()"> <input type="button" value="反選" onclick="reverse()"></body><script>//1. 點擊 "點亮" 按鈕, 點亮燈泡; // 點擊 "熄滅" 按鈕, 熄滅燈泡; function on(){ //事件監聽var img = document.getElementsById("light"); //DOMimg.src="img/on.gif";}function off(){var img = document.getElementsById("light");img.src="img/off.gif";}//2. 輸入框聚焦后, 展示小寫; // 輸入框離焦后, 展示大寫; function lower(){var input = document.getElementById("name");input.value = input.toLowerCase();}function upper(){var input = document.getElementById("name");input.value = input.toUpperCase();}//3. 點擊 "全選" 按鈕使所有的復選框呈現選中狀態 ; // 點擊 "反選" 按鈕使所有的復選框呈現取消勾選的狀態 ; function checkAll(){var checks = document.getElementsByName("hobby");for(let i=0; i<checks.length; ++i){const check = checks[i];check.checked = true;}}function reverse(){var checks = document.getElementsByName("hobby");for(let i=0; i<checks.length; ++i){const check = checks[i];check.checked = false;}}</script>
</html>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/76866.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/76866.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/76866.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python 如何高效實現 PDF 內容差異對比

Python 如何高效實現 PDF 內容差異對比 1. 安裝 PyMuPDF 庫2. 獲取 PDF 內容通過文件路徑獲取通過 URL 獲取 3. 提取 PDF 每頁信息4. 內容對比metadata 差異文本對比可視化對比 5. 提升對比效率通過哈希值快速判斷頁面是否相同早停機制多進程機制 6. 其他 最近有接觸到 PDF 內容…

OpenGL學習筆記(簡介、三角形、著色器、紋理、坐標系統、攝像機)

目錄 簡介核心模式與立即渲染模式狀態機對象GLFW和GLAD Hello OpenGLTriangle 三角形頂點緩沖對象 VBO頂點數組對象 VAO元素緩沖對象 EBO/ 索引緩沖對象 IEO 著色器GLSL數據類型輸入輸出Uniform 紋理紋理過濾Mipmap 多級漸遠紋理實際使用方式紋理單元 坐標系統裁剪空間 攝像機自…

MIPI與DVP接口攝像頭:深度解析與應用指南

1、MIPI 1.1 MIPI簡介 MIPI是什么&#xff1f;MIPI&#xff1a;mobile industry processor interface移動行業處理器接口。它是一個由Intel、Motorola、Nokia、NXP、Samsung、ST&#xff08;意法半導體&#xff09;和TI&#xff08;德州儀器&#xff09;等公司發起的開放標準…

35信號和槽_信號槽小結

Qt 信號槽 1.信號槽是啥~~ 尤其是和 Linux 中的信號進行了對比&#xff08;三要素&#xff09; 1) 信號源 2) 信號的類型 3)信號的處理方式 2.信號槽 使用 connect 3.如何查閱文檔. 一個控件&#xff0c;內置了哪些信號&#xff0c;信號都是何時觸發 一…

6547網:藍橋STEMA考試 Scratch 試卷(2025年3月)

『STEMA考試是藍橋青少教育理念的一部分&#xff0c;旨在培養學生的知識廣度和獨立思考能力。考試內容主要考察學生的未來STEM素養、計算思維能力和創意編程實踐能力。』 一、選擇題 第一題 運行下列哪個程序后&#xff0c;飛機會向左移動&#xff1f; ( ) A. …

使用 Python 爬取并打印雙色球近期 5 場開獎數據

使用 Python 爬取并打印雙色球近期 5 場開獎數據 前期準備安裝所需庫 完整代碼代碼解析 1. 導入必要的庫2. 定義函數 get_recent_five_ssq 3. 設置請求的 URL 和 Headers 4. 發送請求并處理響應5. 解析 HTML 內容6. 提取并打印數據7. 錯誤處理 首先看下運行的效果圖&#xff1a…

前端快速入門學習3——CSS介紹與選擇器

1.概述 CSS全名是cascading style sheets,中文名層疊樣式表。 用于定義網頁樣式和布局的樣式表語言。 通過 CSS&#xff0c;你可以指定頁面中各個元素的顏色、字體、大小、間距、邊框、背景等樣式&#xff0c;從而實現更精確的頁面設計。 HTML與CSS的關系&#xff1a;HTML相當…

JVM 內存區域詳解

JVM 內存區域詳解 Java 虛擬機&#xff08;JVM&#xff09;的內存區域劃分為多個部分&#xff0c;每個部分有特定的用途和管理機制。以下是 JVM 內存區域的核心組成及其功能&#xff1a; 一、運行時數據區&#xff08;Runtime Data Areas&#xff09; 1. 線程共享區域 內存…

基于SpringBoot的水產養殖系統【附源碼】

基于SpringBoot的水產養殖系統&#xff08;源碼L文說明文檔&#xff09; 目錄 4 系統設計 4.1 總體功能 4.2 系統模塊設計 4.3 數據庫設計 4.3.1 數據庫設計 4.3.2 數據庫E-R 圖 4.3.3 數據庫表設計 5 系統實現 5.1 管理員功能模塊的實…

從零構建大語言模型全棧開發指南:第五部分:行業應用與前沿探索-5.2.2超級對齊與AGI路徑探討

?? 點擊關注不迷路 ?? 點擊關注不迷路 ?? 點擊關注不迷路 文章大綱 大語言模型全棧開發指南:倫理與未來趨勢 - 第五部分:行業應用與前沿探索5.2.2 超級對齊與AGI路徑探討超級對齊:定義與核心挑戰1. 技術挑戰2. 倫理挑戰AGI發展路徑:從專用到通用智能階段1:`專用智能…

基于大模型的重癥肌無力的全周期手術管理技術方案

目錄 技術方案文檔1. 數據預處理模塊2. 多任務預測模型架構3. 動態風險預測引擎4. 手術方案優化系統5. 技術驗證模塊6. 系統集成架構7. 核心算法清單8. 關鍵流程圖詳述實施路線圖技術方案文檔 1. 數據預處理模塊 流程圖 [輸入原始數據] → [聯邦學習節點數據對齊] → [多模態特…

盲盒小程序開發平臺搭建:打造個性化、高互動性的娛樂消費新體驗

在數字化浪潮席卷消費市場的今天&#xff0c;盲盒小程序以其獨特的趣味性和互動性&#xff0c;迅速成為了年輕人追捧的娛樂消費新寵。盲盒小程序不僅為用戶帶來了拆盒的驚喜和刺激&#xff0c;更為商家提供了創新的營銷手段。為了滿足市場對盲盒小程序日益增長的需求&#xff0…

前端對接下載文件接口、對接dart app

嵌套在dart app里面的前端項目 1.前端調下載接口 ->后端返回 application/pdf格式的文件 ->前端將pdf處理為blob ->blob轉base64 ->調用dart app的 sdk saveFile ->保存成功 async download() {try {// 調用封裝的 downloadEContract 方法獲取 Blob 數據const …

Spring常見問題復習

############Spring############# Bean的生命周期是什么&#xff1f; BeanFactory和FactoryBean的區別&#xff1f; ApplicationContext和BeanFactory的區別&#xff1f; BeanFactoryAware注解&#xff0c;還有什么其它的Aware注解 BeanFactoryAware方法和Bean注解的方法執行順…

C++_類和對象(下)

【本節目標】 再談構造函數Static成員友元內部類匿名對象拷貝對象時的一些編譯器優化再次理解封裝 1. 再談構造函數 1.1 構造函數體賦值 在創建對象時&#xff0c;編譯器通過調用構造函數&#xff0c;給對象中各個成員變量一個合適的初始值。 class Date { public:Date(in…

連續數據離散化與逆離散化策略

數學語言描述&#xff1a; 在區間[a,b]中有一組符合某分布的數據&#xff1a; 1.求相同區間中另一組符合同樣分布的數據與這組數據的均方誤差 2.求區間中點與數據的均方誤差 3.求在區間中均勻分布的一組數據與這組數據的均方誤差 一&#xff1a;同分布數據隨機映射 假設在…

Redash:一個開源的數據查詢與可視化工具

Redash 是一款免費開源的數據可視化與協作工具&#xff0c;可以幫助用戶快速連接數據源、編寫查詢、生成圖表并構建交互式儀表盤。它簡化了數據探索和共享的過程&#xff0c;尤其適合需要團隊協作的數據分析場景。 數據源 Redash 支持各種 SQL、NoSQL、大數據和 API 數據源&am…

FreeRTOS的空閑任務

在 FreeRTOS 中&#xff0c;空閑任務&#xff08;Idle Task&#xff09; 是操作系統自動創建的一個特殊任務&#xff0c;其作用和管理方式如下&#xff1a; 1. 空閑任務創建 FreeRTOS 內核自動創建&#xff1a;當調用 vTaskStartScheduler() 啟動調度器時&#xff0c;內核會自…

Java進階之旅-day05:網絡編程

引言 在當今數字化的時代&#xff0c;網絡編程在軟件開發中扮演著至關重要的角色。Java 作為一門廣泛應用的編程語言&#xff0c;提供了強大的網絡編程能力。今天&#xff0c;我們深入學習了 Java 網絡編程的基礎知識&#xff0c;包括基本的通信架構、網絡編程三要素、IP 地址、…

大數據(4.3)Hive基礎查詢完全指南:從SELECT到復雜查詢的10大核心技巧

目錄 背景一、Hive基礎查詢核心語法1. 基礎查詢&#xff08;SELECT & FROM&#xff09;2. 條件過濾&#xff08;WHERE&#xff09;3. 聚合與分組&#xff08;GROUP BY & HAVING&#xff09;4. 排序與限制&#xff08;ORDER BY & LIMIT&#xff09; 二、復雜查詢實戰…