JavaScript(JS進階)

目錄

00閉包

01函數進階

02解構賦值

03通過forEach方法遍歷數組

04深入對象

05內置構造函數

06原型


00閉包
<!-- 閉包 --><html><body><script>// 定義:閉包=內層函數(匿名函數)+外層函數的變量(s)// 作用:封閉數據,提供操作,外部可以訪問函數內部變量function fun() {let s = 'Hello World'return function () {document.write(s)}}let f = fun()f()</script>
</body></html>
01函數進階

1>函數參數

????????1.動態參數

????????????????arguments是函數內置的偽數組,包含傳入的所有實參(函數聲明時形參列表為空)

????????2.剩余參數

????????????????將不定數量的剩余參數表示為數組

????????????????形參列表形如(形參列表 , ...剩余參數數組名)

????????3.展開運算符(...)

<!-- 展開運算符 --><html><body><script>let arr = [1, 2, 3]console.log(...arr) // 1 2 3// 不改變原數組</script>
</body></html>

2>箭頭函數

????????1.基本語法:

????????????????function(){} 等效于 () => {}

????????????????只有一個形參,小括號可省略

????????????????只有一行函數體,大括號可省略

????????2.箭頭函數參數:

????????????????無動態參數,有剩余參數

02解構賦值
<!-- 數組解構 --><html><body><script>// 定義:將數組各值快速批量賦值給一系列變量let arr = [1, 2, 3]let [a, b, c] = arrconsole.log(a) // 1console.log(b) // 2console.log(c) // 3</script>
</body></html>
<!-- 對象解構 --><html><body><script>// 定義:將對象屬性和方法快速批量賦值給一系列變量// 注意:新變量名和對應的屬性名要相同let obj = { myname: 'Tian', age: 20 }let { myname, age } = objconsole.log(myname) // Tianconsole.log(age) // 20</script>
</body></html>
03通過forEach方法遍歷數組
<!-- 通過forEach方法遍歷數組 --><html><body><script>let arr = ['one', 'two', 'three']arr.forEach(function (item, index) {console.log(item) // 數組元素console.log(index) //索引號})// one// 0// two// 1// three// 2</script>
</body></html>
04深入對象

1>構造函數

<!-- 構造函數 --><html><body><script>function Std(uname, age) { // 約定:函數名首字母大寫this.uname = unamethis.age = age}console.log(new Std('羅哲秀', 20))console.log(new Std('雷淇', 19))</script>
</body></html>

?2>實例成員&靜態成員

????????實例成員:實例對象的屬性和方法(實例屬性和實例方法)

????????靜態成員:構造函數的屬性和方法(靜態屬性和靜態方法)

05內置構造函數

1>Object常用靜態方法

????????Object.keys(obj)【返回對象obj的鍵(數組)】

????????Object.values(obj)【返回對象obj的值(數組)】

????????Object.assign(obj1,obj2)【obj2拷貝給obj1,追加不覆蓋】

2>Array常用方法

<!-- reduce方法 --><html><body><script>let arr = [1, 2, 3]// reduce的參數為回調函數和初始值let ans1 = arr.reduce((pre, cur) => pre + cur) // 箭頭函數為回調函數console.log(ans1) // 6let ans2 = arr.reduce((pre, cur) => pre + cur, 60) // 60為初始值console.log(ans2) // 66</script>
</body></html>
<!-- find方法 --><html><body><script>// 以對象數組為例--------------------let arr1 = [{ uname: '羅哲秀', age: 20 }, { uname: '雷淇', age: 19 }]console.log(arr1.find(array => array.age === 19))// 以字符串數組為例--------------------let arr2 = ['羅哲秀', '雷淇']console.log(arr2.find(uname => uname === '雷淇'))// 箭頭函數 uname => uname === '雷淇'// 等價于// function myfind(uname) {return uname === '雷淇'}</script>
</body></html>
<!-- every和some方法 --><html><body><script>let arr = [{ uname: '羅哲秀', age: 20 }, { uname: '雷淇', age: 19 }]// every方法--------------------// 全部的元素符合條件let flag = arr.every(array => array.age >= 18)console.log(flag) // true// some方法--------------------// 存在符合條件的元素flag = arr.some(array => array.age >= 20)console.log(flag) // true</script>
</body></html>

3>String常用屬性和方法

????????實例屬性:length

????????實例方法:

????????????????1.split(分隔符)【將字符串分割為數組】

????????????????2.substring(indexStart[, indexEnd])【截取字符串,不包括indexEnd】

????????????????3.startsWith(Str[, pos]【檢測字符串是否以Str開頭,從pos開始檢測,不寫默認為0】

????????????????4.includes(Str[, pos])【檢測字符串是否含有Str,從pos開始檢測,不寫默認為0】

06原型
<!-- 利用原型對象實現方法共享 --><html><body><script>// 構造函數function Stu(uname, age) {this.uname = unamethis.age = age}// 通過原型prototype,向構造函數添加方法共享Stu.prototype.say = function () {console.log(`我叫${this.uname},今年${this.age}歲`);};//實例化,并調用共享函數 let LQ = new Stu('雷淇', 19)let QQ = new Stu('清淺', 20)LQ.say()QQ.say()</script>
</body></html>
<!-- 原型繼承 --><html><body><script>// 父親"人"function people() {this.hair_color = '黑'this.leg_number = '兩'this.say = function () {console.log(`我有${this.hair_color}色的頭發和${this.leg_number}條腿`)}}// 孩子"LQ"function LQ() {this.dance = () => console.log('跳舞')}LQ.prototype = new peoplelet lq = new LQ// 孩子"QQ"function QQ() {this.sing = () => console.log('唱歌')}QQ.prototype = new peoplelet qq = new QQ// 調用共享方法和私有方法,驗證原型繼承lq.say() // 我有黑色的頭發和兩條腿lq.dance() // 跳舞qq.say() // 我有黑色的頭發和兩條腿qq.sing() // 唱歌</script>
</body></html>

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

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

相關文章

6.1es新特性解構賦值

解構賦值是 ES6&#xff08;ECMAScript 2015&#xff09;引入的語法&#xff0c;通過模式匹配從數組或對象中提取值并賦值給變量。&#xff1a; 功能實現 數組解構&#xff1a;按位置匹配值&#xff0c;如 let [a, b] [1, 2]。對象解構&#xff1a;按屬性名匹配值&#xff0c;…

SpringBoot美容院管理系統設計與實現

基于SpringBoot的美容院管理系統免費源碼&#xff0c;幫助您快速搭建高效、智能的美容院管理平臺。該系統涵蓋了管理員、技師、前臺、普通用戶及會員五大功能模塊&#xff0c;以下是系統的核心功能與部署方式詳細介紹。 ?功能模塊 ?管理員功能 ?美容部位管理&#xff1a;支…

記一次某網絡安全比賽三階段webserver應急響應解題過程

0X01 任務說明 0X02 靶機介紹 Webserver&#xff08;Web服務器&#xff09;是一種軟件或硬件設備&#xff0c;用于接收、處理并響應來自客戶端&#xff08;如瀏覽器&#xff09;的HTTP請求&#xff0c;提供網頁、圖片、視頻等靜態或動態內容&#xff0c;是互聯網基礎設施的核心…

ChatGPT 4:引領 AI 創作新時代

文章目錄 前言一、ChatGPT 4 的技術革新二、AI 文案創作&#xff1a;精準生成與個性化定制三、AI 繪畫藝術&#xff1a;從文字到圖像的神奇轉化四、AI 視頻制作&#xff1a;自動化剪輯與創意實現五、知識庫與 ChatGPT 4 的深度融合六、全新的變革和機遇七、相關書籍推薦《ChatG…

HTTP請求-請求行

請求行&#xff08;方法&#xff0c;URL&#xff0c;版本號&#xff09; 方法&#xff1a; 描述了這次請求的目的。 常見方法&#xff1a; GET&#xff1a;從服務器拿一個東西過來&#xff08;讀操作&#xff09; POST&#xff1a;往服務器放一個東西去&#xff08;寫操作…

OSPF不規則區域和LSA

OSPF不規則區域 1.遠離骨干的非骨干區域 R1-R4四臺路由器能夠正常學習到彼此路由&#xff0c;但是R5不行&#xff0c;因為R5是非法ABR 解決方法&#xff1a; 1使用Tunnel隧道將AR4連接到骨干區域 &#xff08;1&#xff09; 使用隧道解決不規則區域的問題 a.可能造成選路不…

【VS Code】開發C++跳轉配置

C配置c_cpp_properties.json {"env": {"myIncludePath": ["${workspaceFolder}/src/include","${workspaceFolder}/src","${workspaceFolder}","/home/xxx/include/"],"myDefines": ["RELEASE&qu…

Spring AI應用:利用DeepSeek+嵌入模型+Milvus向量數據庫實現檢索增強生成--RAG應用(超詳細)

Spring AI應用&#xff1a;利用DeepSeek嵌入模型Milvus向量數據庫實現檢索增強生成–RAG應用&#xff08;超詳細&#xff09; 在當今數字化時代&#xff0c;人工智能&#xff08;AI&#xff09;技術的快速發展為各行業帶來了前所未有的機遇。其中&#xff0c;檢索增強生成&…

Spring 的 IoC 和 DI 詳解:從零開始理解與實踐

Spring 的 IoC和 DI 詳解&#xff1a;從零開始理解與實踐 一、IoC&#xff08;控制反轉&#xff09; 1、什么是 IoC&#xff1f; IoC 是一種設計思想&#xff0c;它的核心是將對象的創建和管理權從開發者手中轉移到外部容器&#xff08;如 Spring 容器&#xff09;。通過這種…

JVM基礎架構:內存模型×Class文件結構×核心原理剖析

&#x1f680;前言 “為什么你的Java程序總在半夜OOM崩潰&#xff1f;為什么某些代碼性能突然下降&#xff1f;一切問題的答案都在JVM里&#xff01; 作為Java開發者&#xff0c;如果你&#xff1a; 對OutOfMemoryError束手無策看不懂GC日志里的神秘數字好奇.class文件如何變…

.DS_Store文件泄露、.git目錄泄露、.svn目錄泄露漏洞利用工具

&#x1f409;工具介紹 一款圖形化的 .DS_Store文件泄露、.git目錄泄露、.svn目錄泄露漏洞利用工具。 &#x1f3af;使用 本工具使用Python3 PyQt5開發&#xff0c;在開始使用前&#xff0c;請確保已經安裝了相關模塊&#xff1a; pip3 install -r requirements.txt -i ht…

為何在 FastAPI 中需要允許跨域訪問(CORS)?(Grok3 回答)

prompt: 你是一個文筆流暢、專業性極強的技術博客博主&#xff0c;你將結合具體的例子和實際代碼解釋寫一篇為何后端選擇fastapi框架時&#xff0c;需要允許跨域訪問。 為何在 FastAPI 中需要允許跨域訪問&#xff08;CORS&#xff09;&#xff1f; 在現代 Web 開發中&#xf…

JDK8前后日期(計算兩個日期時間差-高考倒計時)

JDK8之前日期、時間 Date SimpleDateFormat Calender JDK8開始日期、時間 LocalDate/LocalTime/LocalDateTime ZoneId/ZoneDateTIme Instant-時間毫秒值 DateTimeFormatter Duration/Period

Gerapy二次開發:用戶管理專欄主頁面開發

用戶管理專欄主頁面開發 寫在前面用戶權限控制用戶列表接口設計主頁面開發前端account/Index.vuelangs/zh.jsstore.js后端Paginator概述基本用法代碼示例屬性與方法urls.pyviews.py運行效果總結歡迎加入Gerapy二次開發教程專欄! 本專欄專為新手開發者精心策劃了一系列內容,旨…

關于Spring MVC中傳遞數組參數的詳細說明,包括如何通過逗號分隔的字符串自動轉換為數組,以及具體的代碼示例和總結表格

以下是關于Spring MVC中傳遞數組參數的詳細說明&#xff0c;包括如何通過逗號分隔的字符串自動轉換為數組&#xff0c;以及具體的代碼示例和總結表格&#xff1a; 1. 核心機制 Spring MVC支持直接通過逗號分隔的字符串將請求參數自動轉換為數組&#xff08;String[]、int[]等&…

大模型學習七:?小米8閑置,直接安裝ubuntu,并安裝VNC遠程連接手機,使勁造

一、說明 對于咱們技術人來說&#xff0c;就沒有閑的蛋疼的時候&#xff0c;那不是現在機會來了 二、刷機器準備 1、申請解鎖手機 申請解鎖小米手機https://www.miui.com/unlock/download.html 下載工具&#xff0c;安裝下面的步驟來&#xff0c;官網不欺人吧 打開開發者工…

repo安裝配置

1.安裝屬性 以下配置方式二選一進行安裝 1.1全局級別配置 1. 安裝 repo 工具 在終端中輸入以下命令以下載 repo 工具&#xff1a; curl https://storage.googleapis.com/git-repo-downloads/repo > /usr/bin/repo chmod ax /usr/bin/repo 1.2用戶級別配置 1. 安裝 r…

Go 語言數據類型

Go 語言數據類型 概述 Go 語言(也稱為 Golang)是一種靜態強類型、編譯型、并發型、具有垃圾回收功能的編程語言。自2009年發布以來,Go 語言因其簡潔的語法、高效的執行速度和強大的并發處理能力而廣受歡迎。本文將詳細介紹 Go 語言中的數據類型,幫助讀者更好地理解和掌握…

C# 看門狗策略實現

using System; using System.Threading;public class Watchdog {private Timer _timer;private volatile bool _isTaskAlive;private readonly object _lock new object();private const int CheckInterval 5000; // 5秒檢測一次private const int TimeoutThreshold 10000; …

Font Awesome Web 應用圖標

1. 什么是 Font Awesome Web 應用圖標 Font Awesome Web 應用圖標是 Font Awesome 圖標庫中與 Web 開發相關的子集&#xff0c;適用于界面設計、用戶交互和功能標識。 定義與作用 定義&#xff1a;這些圖標包括導航&#xff08;如“主頁”&#xff09;、操作&#xff08;如“…