網頁前端開發(基礎進階2--JS)

前面學習了html與css,接下來學習JS(JavaScript與Java無關)。

web標準(網頁標準)分為3個部分:

1.html主要負責網頁的結構(頁面的元素和內容)

2.css主要負責網頁的表現(元素的外觀,位置等頁面樣式)

3.js主要負責網頁的行為(交互效果 )

JavaScript是跨平臺,腳本語言(不用編譯,直接運行的語言)

JS主要負責控制網頁的行為,實現網頁的交互效果。

JS的組成(3個部分)

1.ECMAScript:規定了JS基礎語法的核心知識,包含:變量,數據類型,流程控制,函數,對象。

2.BOM:瀏覽器對象模型,用于操作瀏覽器,如:頁面彈窗,地址欄操作。

3.DOM:文檔對象模型,用于操作html文檔,改變標簽內容,改變標簽樣式。

JS的核心語法

1.JS的引入方法

(1)使用內部腳本:將JS代碼定義在html頁面中。

? ? ? ? JS代碼位于<script>? </script>標簽之間

? ? ? ? 在html文件中,可在任意地方,放置任意的<script>? </script>標簽

建議在html文件中,將<script>? </script>標簽放置在<body>的最下方

示例:

<body>

????????..........

? ? ? ? .........

????????<script>?

????????????????alert(‘hello world’)//彈出一個提示欄,顯示hello world

????????</script>

</body>

(2)使用外部腳本:新建text.js文件

? ? ? ? 在text.js文件中寫入 alert(‘hello world’)//彈出一個提示欄

? ? ? ? 在html文件中,引用js文件。<script src=“js/text.js”> </script>

示例:

在text.js文件

alert(‘hello world’)

在html文件中

<body>

????????..........

? ? ? ? .........

???????<script src=“js/text.js”> </script>

</body>

2.JS的基礎語法

(1)聲明變量

? ? ? ? JS中使用let聲明變量,JS是若類型語言,同一變量可存放不同類型的值。

<body>

????????..........

? ? ? ? .........

????????<script>?

? ? ? ? ? ? ? ? let a=20;

? ? ? ? ? ? ? ? a="hello";

????????????????alert(a)//彈出一個提示欄,顯示hello

? ? ? ? ? ? ? ? const PI=3.14;//使用const定義變量,定義后變量不可改變

? ? ? ? ? ? ? ? PI=3.2;//報錯

????????</script>

</body>

(2)數據類型

????????JS的數據類型分為兩種:基本數據類型和引用數據類型(對象)。

????????基本數據類型有5種,number(數字類型,包含整數,浮點數。NaN),boolear(布爾類型,只有true和false),null(為空),undefined(未初始化),string(字符串類型,推薦使用‘ ’單引號)。

? ? ? ? 使用typeof可獲取變量的數據類型。

<body>

????????..........

? ? ? ? .........

????????<script>?

? ? ? ? ? ? ? ? let name='Tom';

????????????????let age=20;

? ? ? ? ? ? ? ? console.log('你好,我是'+name+',我今年'+age+'歲了。')

????????????????console.log(`你好,我是${name},我今年${age}歲了。`)//可使用` `反引號,對字符串進行拼接,使用${ }。

? ? ? ? ? ? ? ? alert(typeof name); //獲取變量name的數據類型,為string(字符串)。

????????</script>

</body>

? ? ?

?(3)函數 function

? ? ? ? 函數:執行特定任務的代碼塊,方便程序的封裝復用。

JS中函數的定義

function My(參數1,參數2){

? ? ? ? ..............
}

示例:

<body>

????????..........

? ? ? ? .........

????????<script>?

? ? ? ? ? ? ? ??function add(a,b){

? ? ? ? ????????????????return a+b;
????????????????}

? ? ? ? ? ? ? ? let result=add(10,20);

????????????????console.log(result)

????????</script>

</body>

特殊的函數:匿名函數

方法1:

? ? ? ? let add=function(a,b){

? ? ? ? ? ? ? ? return a+b;
????????}

方法2:

????????let add=(a,b)=>{

? ? ? ? ? ? ? ? return a+b;
????????}

?(4)自定義對象

定義格式

let user={

????????name='Tom',

????????age=20,

? ? ? ? gender=‘男’,

? ? ? ? ? ? ? ? sing:function(){

????????????????????????alert(‘我的名字是’+this.name);

????????????????}

}

調用格式:

console.log(user.name);

user.sing();

?(5)json

json用于數據載體,用來存儲數據。

特點:層次分明,結構簡單

JS對象

{

? ? ? ? name=“Tom”,

? ? ? ? age=20,

????????gender="男"

}

json文本

{

? ? ? ? "name"=“Tom”,

? ? ? ? "age"=20,

????????"gender"="男"

}

JS對象->json文本 使用JSON.stringify()進行轉換

json文本->JS對象 使用JSON.parse()進行轉換

示例1

let person={

? ? ? ? name=“Tom”,

? ? ? ? age=20,

????????gender="男"

}

alert(person)? ? ? ? //彈出框,只能彈出[Object,Object,Object]

alert(JSON.stringify(person))? //彈出框,彈出{"name"=“Tom”,"age"=20,"gender"="男"}

示例2

let personJ='{"name"=“Tom”,"age"=20,"gender"="男"}'

alert(JSON.parse(personJ).name)? ?//彈出Tom

JS的事件監聽

? ? ? ? 事件:HTML事件是發生在HTML元素上的事情。如:按鈕被點擊,鼠標移動到元素上,按下鍵盤的按鈕。

? ? ? ? 事件監聽:JavaScript可以在事件1-觸發時,就立即調用一個函數,做出響應,被稱為“事件綁定”或“注冊事件”。

? ? ? ? 事件源:.addEventListener('事件類型',事件觸發時執行的函數)

1.事件源:哪個元素觸發事件,就獲取哪個元素

2.事件類型:觸發事件的類型。如:鼠標點擊 click

3.事件觸發時,執行的函數

示例1

<body>

????????..........

? ? ? ? .........

? ? ? ? <input id="bin" type="button" value="點擊一下">

????????<script>?

? ? ? ? ? ? ? ? document.querySelector('#bin').addEventListener('click',()=>{

? ? ? ? ? ? ? ? ? ? ? ? alert('測試');? ?

? ? ? ? ? ? ? ? })

????????</script>

</body>

示例二

鼠標移動,表格背景顏色改變

<body>

????????..........

? ? ? ? .........

????????<script>?

? ? ? ? ? ? ? ? let trs=document.querySelectorAll('br');? ? ? ? //獲取所有tr標簽元素

? ? ? ? ? ? ? ? for(let i=0;i<trs.length;i++){

? ? ? ? ? ? ? ? ? ? ? ? trs[i].addEventListener('moluseenter'.function(){? //鼠標進入

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? this.style.backgroundColor='#f2e2e2';????????//將顏色改為粉色

????????????????????????});

????????????????????????

????????????????????????trs[i].addEventListener('moluseleave'.function(){? ?//鼠標離開

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? this.style.backgroundColor='#fff';????????//將顏色恢復為白色

????????????????????????});

????????????????}

????????</script>

</body>

JS常見事件

1.鼠標事件

? ? ? ? click 鼠標單擊

????????moluseenter 鼠標進入

????????moluseleave 鼠標離開

2.鍵盤事件

? ? ? ? keydown 按鍵按下

? ? ? ? keyup 鍵盤抬起????????

3.焦點事件

? ? ? ? focus 聚焦組件

? ? ? ? blur 離焦組件

4.表單事件

? ? ? ? input 用戶輸入

? ? ? ? submit 表單提交觸發

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

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

相關文章

完全移除內聯腳本

說明 日期&#xff1a;2025年5月9日。 內聯腳本給跨站腳本攻擊&#xff08;XSS&#xff09;留了條路。 示例 日期&#xff1a;2025年5月9日。 如下網頁文件a.html&#xff1a; <!-- 內聯腳本塊 --> <script> function handleClick{ alert("Hello")…

[藍橋杯]約瑟夫環

約瑟夫環 題目描述 nn 個人的編號是 1 ~ nn&#xff0c;如果他們依編號按順時針排成一個圓圈&#xff0c;從編號是 1 的人開始順時針報數。 &#xff08;報數是從 1 報起&#xff09;當報到 kk 的時候&#xff0c;這個人就退出游戲圈。下一個人重新從 1 開始報數。 求最后剩…

電子電氣架構 --- 如何應對未來區域式電子電氣(E/E)架構的挑戰?

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 做到欲望極簡,了解自己的真實欲望,不受外在潮流的影響,不盲從,不跟風。把自己的精力全部用在自己。一是去掉多余,凡事找規律,基礎是誠信;二是…

isp中的 ISO代表什么意思

isp中的 ISO代表什么意思 在攝影和圖像信號處理&#xff08;ISP&#xff0c;Image Signal Processor&#xff09;領域&#xff0c;ISO是一個用于衡量相機圖像傳感器對光線敏感度的標準參數。它最初源于膠片攝影時代的 “國際標準化組織&#xff08;International Organization …

第十二節:第五部分:集合框架:Set集合的特點、底層原理、哈希表、去重復原理

Set系列集合特點 哈希值 HashSet集合的底層原理 HashSet集合去重復 代碼 代碼一&#xff1a;整體了解一下Set系列集合的特點 package com.itheima.day20_Collection_set;import java.util.HashSet; import java.util.LinkedHashSet; import java.util.Set; import java.util.…

邁向分布式智能:解析MCP到A2A的通信范式遷移

智能體與外部世界的橋梁之言&#xff1a; 在深入探討智能體之間的協作機制之前&#xff0c;我們有必要先厘清一個更基礎的問題&#xff1a;**單個智能體如何與外部世界建立連接&#xff1f;** 這就引出了我們此前介紹過的 **MCP&#xff08;Model Context Protocol&…

Android Studio 配置之gitignore

1.創建或編輯.gitignore文件 在項目根目錄下檢查是否已有.gitignore文件。如果沒有&#xff0c;創建一個新文件&#xff0c;命名為.gitignore&#xff08;注意文件名前有個點&#xff09;。 添加忽略規則&#xff1a;在.gitignore中添加以下內容&#xff1a; 忽略整個 .idea …

算法:二分查找

1.二分查找 704. 二分查找 - 力扣&#xff08;LeetCode&#xff09; 二分查找算法要確定“二段性”&#xff0c;時間復雜度為O(lonN)。為了防止數據溢出&#xff0c;所以求mid時要用防溢出的方式。 class Solution { public:int search(vector<int>& nums, int tar…

day62—DFS—太平洋大西洋水流問題(LeetCode-417)

題目描述 有一個 m n 的矩形島嶼&#xff0c;與 太平洋 和 大西洋 相鄰。 “太平洋” 處于大陸的左邊界和上邊界&#xff0c;而 “大西洋” 處于大陸的右邊界和下邊界。 這個島被分割成一個由若干方形單元格組成的網格。給定一個 m x n 的整數矩陣 heights &#xff0c; hei…

Langchaine4j 流式輸出 (6)

Langchaine4j 流式輸出 大模型的流式輸出是指大模型在生成文本或其他類型的數據時&#xff0c;不是等到整個生成過程完成后再一次性 返回所有內容&#xff0c;而是生成一部分就立即發送一部分給用戶或下游系統&#xff0c;以逐步、逐塊的方式返回結果。 這樣&#xff0c;用戶…

自動駕駛與智能交通:構建未來出行的智能引擎

隨著人工智能、物聯網、5G和大數據等前沿技術的發展&#xff0c;自動駕駛汽車和智能交通系統正以前所未有的速度改變人類的出行方式。這一變革不僅是技術的融合創新&#xff0c;更是推動城市可持續發展的關鍵支撐。 一、自動駕駛與智能交通的定義 1. 自動駕駛&#xff08;Auto…

數據基座覺醒!大數據+AI如何重構企業智能決策金字塔(下)

1. 數據架構的量子躍遷 1.1 從線性堆疊到立體網絡 傳統六層架構正在經歷基因重組。某智能家居企業將數據流轉路徑重構為三維拓撲網絡后&#xff0c;新品研發周期從18個月壓縮至9個月。這個改造的核心在于打破數據層間的物理隔離&#xff0c;讓原始數據流能直接觸達決策中樞。…

Linux 腳本文件編輯(vim)

1. 用戶級配置文件&#xff08;~/.bashrc&#xff09; vim ~/.bashrc # 編輯 source ~/.bashrc # 讓編輯生效 ~/.bashrc 文件是 Bash Shell 的配置文件&#xff0c;用于定義用戶登錄時的環境變量、別名、函數等設置。當你修改了 ~/.bashrc 文件后&#xff0c;通常需要重新…

【Pytorch學習筆記】模型模塊06——hook函數

hook函數 什么是hook函數 hook函數相當于插件&#xff0c;可以實現一些額外的功能&#xff0c;而又不改變主體代碼。就像是把額外的功能掛在主體代碼上&#xff0c;所有叫hook&#xff08;鉤子&#xff09;。下面介紹Pytorch中的幾種主要hook函數。 torch.Tensor.register_h…

SQL進階之旅 Day 11:復雜JOIN查詢優化

【SQL進階之旅 Day 11】復雜JOIN查詢優化 在數據處理日益復雜的今天&#xff0c;JOIN操作作為SQL中最強大的功能之一&#xff0c;常常成為系統性能瓶頸。今天我們進入"SQL進階之旅"系列的第11天&#xff0c;將深入探討復雜JOIN查詢的優化策略。通過本文學習&#xf…

Spring AI 之檢索增強生成(Retrieval Augmented Generation)

檢索增強生成&#xff08;RAG&#xff09;是一種技術&#xff0c;有助于克服大型語言模型在處理長篇內容、事實準確性和上下文感知方面的局限性。 Spring AI 通過提供模塊化架構來支持 RAG&#xff0c;該架構允許自行構建自定義的 RAG 流程&#xff0c;或者使用 Advisor API 提…

前端開源JavaScrip庫

以下內容仍在持續完善中&#xff0c;如有遺漏或需要補充之處&#xff0c;歡迎在評論區指出。感謝支持&#xff0c;如果覺得有幫助&#xff0c;歡迎點贊鼓勵。感謝支持 JavaScript 框架Vue.jsVue.js - 漸進式 JavaScript 框架 | Vue.jsReactReactAngularHome ? AngularjQueryj…

什么是 CPU 緩存模型?

導語&#xff1a; CPU 緩存模型是后端性能調優、并發編程乃至分布式系統設計中一個繞不開的核心概念。它不僅關系到指令執行效率&#xff0c;還影響鎖機制、內存可見性等多個面試高頻點。本文將以資深面試官視角&#xff0c;詳解緩存模型的原理、常見面試題及實戰落地&#xff…

海外tk抓包簡單暴力方式

將地址替換下面代碼就可以 function hook_dlopen(module_name, fun) {var android_dlopen_ext Module.findExportByName(null, "android_dlopen_ext");if (android_dlopen_ext) {Interceptor.attach(android_dlopen_ext, {onEnter: function (args) {var pathptr …

多模態大語言模型arxiv論文略讀(103)

Are Bigger Encoders Always Better in Vision Large Models? ?? 論文標題&#xff1a;Are Bigger Encoders Always Better in Vision Large Models? ?? 論文作者&#xff1a;Bozhou Li, Hao Liang, Zimo Meng, Wentao Zhang ?? 研究機構: 北京大學 ?? 問題背景&…