JavaScript基礎知識整理(最全知識點, 精簡版,0基礎版)

文章目錄

一、輸入和輸出內容

1.1 輸出

1.1.1 在瀏覽器的控制臺輸出打印

1.1.2 直接在瀏覽器的頁面上輸出內容

1.1.3 頁面彈出警告對話框

1.2 輸入

二、變量

2.1 變量是什么

2.2 變量的聲明和賦值

2.3 變量的命名規范和規范

三、變量擴展(數組)

3.1 數組的聲明

3.2 數組的使用

3.3 數組的長度

四、常量

4.1 常量的聲明和賦值

五、數據類型

5.1 數字數據類型

5.2 字符串類型

5.3 布爾類型

5.4 null 類型

5.5 未定義類型

六、隱式轉換和顯示轉換

6.1 使用 + 進行隱式轉換

6.2 顯示轉換

七、運算符

7.1 算數運算符

7.2 賦值運算符

7.3自增自減運算符

7.4 比較運算符

7.5 邏輯運算符?

7.6 三元運算符

7.7 運算符的優先級

八、分支語句

8.1 單分支語句

8.2 雙分支語句

8.3 多分支語句

8.4 switch分支語句

九、循環語句

9.1 while循環

9.2 for 循環

9.3 for循環的嵌套

十、數組的使用?

10.1 數組的聲明(可以放任意的數據類型,不只是數字,這里)

10.2 取值

10.3 數組的長度表示

10.4 數組的基本使用

10.5 數組的相關操作

十一、函數的使用

11.1 封裝函數

11.2 函數參數以及默認參數

11.3 函數的返回值?

11.4 作用域

11.4.1 全局作用域

11.4.2 局部作用域

11.5 匿名函數 (沒有名字的函數)

11.5.1 函數表達式

11.5.2 立即執行函數

十二、對象

12.1 對象的基本使用?

12.2 對象的相關操作

12.3 對象的方法

12.4 遍歷對象

12.5 內置對象

十三、隨機數函數

十四、總結


一、輸入和輸出內容

1.1 輸出

1.1.1 在瀏覽器的控制臺輸出打印

 console.log("I love JS")

1.1.2 直接在瀏覽器的頁面上輸出內容

document.write(111)

1.1.3 頁面彈出警告對話框

alert("出錯啦")

1.2 輸入

prompt("請輸入你的姓名")

顯示一個對話框,對話框中包含一條信息,用來提示用戶輸入文字

二、變量

2.1 變量是什么

變量是一個容器,用來存儲數據的。舉一些生活中的例子,就比如比較熟悉的HTML標簽、教室、宿舍等等

2.2 變量的聲明和賦值

? 使用關鍵字let 聲明

let age = 20let arr = [10, 20, 30, 40, 50, 60, 70, 80, 90]let name = "張三"

案例: 交換兩個變量

    <script>let a = 10let b = 20let tt = aa = bb = tdocument.write(a+"</br>" + b)</script>

2.3 變量的命名規范和規范

規則

1. 不能使用關鍵字:有特殊含義的字符,比如JavaScript內置的一些英語詞匯:var, let, const, for, if...

2. 只能用數字、字母、下劃線、$組成, 不能以數字開頭

3. 嚴格區分大小寫: 比如name和Name是兩個不同的變量

規范:

1. 起名要有意義:比如商品,你可以使用goods, 這樣別人看到就可以很快理解了

2. 可以采用小駝峰命名:比如用戶姓名: userName

三、變量擴展(數組)

3.1 數組的聲明

let arr = [1,2,3,4, "xx"]

3.2 數組的使用

數組是有序的,如果需要使用數組中的元素,可以使用索引號(下標)來查找,索引號從0開始

->? 數組名[下標]

console.log(arr[0])   // ->> 1console.log(arr[2])   // ->> 3

3.3 數組的長度

console.log(arr.length)  // -> 5

四、常量

4.1 常量的聲明和賦值

使用 const 聲明
const PI = 3.14  
//常量聲明時,必須賦值
//常量賦值后,不能修改
console.log(PI)
注意:常量不能夠被重新賦值,常量在聲明的時候必須賦值(初始化)

五、數據類型

JS的數據類型分為兩大類:基本數據類型和引用數據類型

1. 基本數據類型: 數字類型number、字符串類型string、布爾類型boolean、空類型null、未定義型undefined

2. 引用數據類型:對象object

在JS中可以使用type of 來查看變量是什么數據類型?

5.1 數字數據類型

let num = 20
console.log(type of num)   // -> number

5.2 字符串類型

let name = "張三"
console.log(type of name)  // -> string

?1. 字符串的拼接 (使用 + 進行拼接)

console.log("我的同學叫" + name + ",他很帥")

2. 模板字符串?

 </script>let str = `xx`let str1 = 'xx1'let str2 = ''// 模板字符串// 1. 模板字符串用反引號標識// 2. 模板字符串中可以出現變量,變量用${變量名}標識// 3. 模板字符串中可以出現表達式,表達式用${表達式}標識// 4. 模板字符串中可以出現函數調用,函數調用用${函數名()}標識// 5. 模板字符串中可以出現多行文本,用\n標識let age = 20console.log(`我今年${age}歲了`);</script>

5.3 布爾類型

let isClick = true
console.log(type of isClick)   // -> trueconsole.log(3 > 4)  // -> false

5.4 null 類型

let obj = null

5.5 未定義類型

聲明了變量,但是未賦值,那么這個變量就是未定義類型

let num
console.log(num)   // -> undefined

六、隱式轉換和顯示轉換

6.1 使用 + 進行隱式轉換

只要加號一側有引號,就會將另一側的數字型轉換為字符串類型

console.log(1 + 1)   // -> 2 
console.log("xx" + 1)  // -> xx1

6.2 顯示轉換

1. 轉為數字類型

let s = "1"
let num = Number(s)
console.log(num)   // -> 1

注意:(1)其實除了 + 外,? 其他運算符 -, *, /,都有同樣的作用

? ? ? ? ? ?(2)但是利用NUmber()進行強制轉換時,所需轉換的變量,去掉引號后,必須是數字,不然會變成NaN?

除了Number以外,還有兩種方法可以轉換為數字類型

1. parseInt()? ? >>? ?只保留整數

2.parseFloat()? ?>> 可以保留小數

?2.轉為字符串類型

let num = 1
let str = String(num)
console.log(str)  ->  "1"

七、運算符

7.1 算數運算符

算數運算符我們應該已經很熟悉了: +, -, *, / , % ...

7.2 賦值運算符

1.? ?=

2. += , -=, *= ,/= ,......

let num = 10
num += 10    // -> 相當于 num = num + 10  

?7.3自增自減運算符

++

--

let num = 1
num = num + 1
console.log(num)  //  -> 2// same
num++
console.log(num)   ->  2

更多解釋:

后置自增 i++ 和 前置自增 ++i? 的區別:

let i = 1console.log(++i + 1);   // 結果是3// 注意: i是2// i先自加 1 ,變成2之后,再和后面的2相加
let i = 1
console.log(i++ + 1) // -> 2// i后加1,參與運算的i值仍是1

7.4 比較運算符

等于==(值相同),? 全等===? (值和數據類型都相同)?,不等!=,? 不全等!==,>, <, >=, <=

結果是布爾類型?

7.5 邏輯運算符?

邏輯與 &&? (一假則假), 邏輯或 || (一真則真), 邏輯非 !(假變真,真變假)

7.6 三元運算符

console.log(3 > 5 ? 3 : 5)

分析:如果3>5為true, 則結果為3, 否則結果為5?

案例:數字補零,, 也涉及到了+,字符串的拼接

// 1. 用戶輸入
let num = +prompt("請輸入一個數字")alert(num < 10 ? '0' + num : num)

?7.7 運算符的優先級

這里面分的比較細!?

八、分支語句

8.1 單分支語句

if (i === 10) {document.write("猜對了!")
}

8.2 雙分支語句

if (i === 10) {document.write("猜對了!")
} else {document.write("猜錯了!")
}

案例:判斷閏年?

let year = +prompt("請輸入年份:")
if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {alert(`${year}是閏年`)
} else {alert(`${year}不是閏年`)
}

?8.3 多分支語句

if() {} else if () {} else if () {} ... else {}

?直接上案例:成績判斷

let score = +prompt("請輸入分數:")
if(score >= 90) {alert("A")
} else if (score >= 80) {alert("B")
} else if (score >= 70) {alert("C")
} else if (score >= 60) {alert("D")
} else {alert("不及格!")
}

?8.4 switch分支語句

語法格式!!

        switch (key) {case value:break;case value:break;...default:break;}

案例:還是上面成績案例?

        let score = +prompt("請輸入你的成績:")score /= 10switch (score) {case 10:alert("A")break;case 9:alert("B")break;case 8:alert("C")break;case 7:alert("D")break;case 6:alert("E")break;default:alert("不及格")break;}

九、循環語句

9.1 while循環

// 循環三要素:  變量起始值;  終止條件;  變量變化量(用自增或者自減)let i = 0  // 變量起始值while(i <= 5) {  //終止條件document.write("我愛學習!")i++  //變量變化量}

案例:無限循環 -> 只要不滿足退出的條件,就會無限執行:你愛我嗎

        while(1) {let text = prompt("你愛我嗎?")if (text === '愛') {break}}

9.2 for 循環

語法格式

for (變量初始值; 終止條件; 變量變化量) {// 循環體
}

案例演示:

        for (let k=0; k<3; k++) {document.write("好好學習!")}

?

?9.3 for循環的嵌套

直接上案例:九九乘法表

        let i, jfor (i = 1; i <= 9; i++) {for (j = 1; j <= i; j++) {document.write(`${j} * ${i} = ${i * j} `)}document.write("<br>")}

補充:那么什么時候使用for循環,什么時候使用while循環?

當循環次數確定時,使用for循環。循環次數不確定時,使用while循環?

十、數組的使用?

10.1 數組的聲明(可以放任意的數據類型,不只是數字,這里)

let arr = [2, 6, 1, 7, 4]  //(可以放任意的數據類型,不只是數字,這里以數字舉例)

10.2 取值

通過下標或索引號取值,從0開始

arr[0]    // -> 2
arr[1]   // -> 6

?10.3 數組的長度表示

arr.length    // -> 5

10.4 數組的基本使用

直接上案例:使用for循環遍歷數組 , 求數組元素之和和平均值

        let arr = [2, 6, 1, 7, 4]let ilet sum = 0let average = 0.0for (i = 0; i < arr.length; i++) {sum += arr[i];}average = sum / arr.length * 1.0document.write(`和為${sum}, 平均值為${average}`)

案例:求數組中的最大值?

默認最大值和最小值的初始值為數組中的第一個元素arr[0]

        let arr = [2 ,6, 1, 77, 52, 225, 7]let max = arr[0]let min = arr[0]for (let i = 1; i < arr.length; i++) {if (arr[i] > max) {max = arr[i]}if (arr[i] < min) {min = arr[i]}}document.write(`最大值為${max}`)document.write(`最小值為${min}`)

10.5 數組的相關操作

修改:

        // 改let arr = []arr[0] = 1console.log(arr)let arr1 = ['藍', '紅', '黃']arr1[1] = '綠'console.log(arr1)

新增 :

        // 增// 1. push 末尾新增let arr2 = ['小明', '小強', '小剛']arr2.push('小華')console.log(arr2)console.log(arr2.push('小華'))  // 可以直接返回數組的長度// 2. unshift 開頭新增let arr3 = [1, 2, 3, 4]console.log(arr3.unshift(6))   // 也可以直接返回數組的長度console.log(arr3)

刪除 :

        // 刪除// 1. pop()   可以刪除數組中的最后一個元素,并且返回該元素的值let arr4 = [1, 3, 5, 7, 8, 9]console.log(arr4.pop())console.log(arr4)// 2. shfit()  刪除第一個元素, 并且返回該元素的值console.log(arr4.shift())console.log(arr4)// 3. splice()  刪除指定的元素// 語法:  arr.splice(起始位置->索引號, 刪除幾個元素)let arr5 = [9, 10, 87, 99, 76]console.log(arr5.splice(1,2))console.log(arr5)

?

十一、函數的使用

11.1 封裝函數

函數: 可以實現代碼復用,提高開發效率

? ? ? function 是執行特定任務的代碼塊

? ? ? ??

? ? ?1. 聲明語法:

? ? ? ? ? ? ? ? function 函數名() {

? ? ? ? ? ? ? ? ? ? 函數體

? ? ? ? ? ? ? ? }

? ? ? 2. 調用語法:

? ? ? ? ? ? ? ? 函數名()

// 聲明
function fn() {document.write("好好學習")
}// 調用
fn()

?11.2 函數參數以及默認參數

直接上案例:?封裝一個函數,計算兩個數的和?

// let a,b function sum(a, b) {console.log(a + b)}sum(4,3)   // ->  7

?基于上述代碼如果調用函數時,沒有傳參,相當于a 和 b 都未定義,為undefined, 所以返回結果時NaN, 為了優化代碼,我們可以設定默認參數

?

?

11.3 函數的返回值?

函數返回值的優點是便于得到數據,并對數據進行相應的處理和使用

關鍵字: return

        function sum(a=0, b=0) {return a + b}let sum1 = sum(4,3)console.log(sum1)

?11.4 作用域

11.4.1 全局作用域

作用于所有代碼的執行環境(整個script標簽內部)

在下述代碼中定義了一個變量num , 它既可以在函數外部使用,也可以在函數內部使用?

?

11.4.2 局部作用域

作用域函數內的代碼環境,因為跟函數有關,所以也叫函數作用域?

在下述代碼中,在函數內部定義了一個變量 str, 在函數外部使用時,會報錯

?

11.5 匿名函數 (沒有名字的函數)

11.5.1 函數表達式

語法格式:

let fn = function() {// 函數體
}

?這里面 fn 就相當于函數的名字, 調用函數時, 直接用 fn() 即可

        // 1.函數表達式let fn = function () {console.log('函數表達式')}fn()

?

11.5.2 立即執行函數

立即執行函數就是,不用調用,直接就可以執行

語法格式:?

(function() {})()

        // 立即執行函數: 避免全局變量之間的污染// 多個立即執行函數,之間需要用 分號 隔開(function () {let num1 = 9console.log(11)})();(function () {let num2 = 10console.log(11)})()

?

十二、對象

對象是一種無序的數據集合,用來描述一個人或物

12.1 對象的基本使用?

語法格式:

let obj = {屬性名: 屬性值,...
}

比如描述一個人

let obj = {name: 'xx',age: 20,gender: '男'
}

?

?12.2 對象的相關操作

查找:

語法:對象名.屬性

?

還有一種查的方法:

對象名['屬性名']?? ? ? ? console.log(obj['name'])

修改:對象名.屬性 = 新值

        let obj = {name: 'xx',age: 20,gender: '男'}obj.name = 'yy'console.log(obj.name);

新增:對象名.屬性 = 新值?

新增和修改的語法格式相同,只不過增的是對象中沒有的屬性?

?

?

?

?刪除:delete 對象名.屬性

?

?

?

12.3 對象的方法

?

?

12.4 遍歷對象

        let obj = {name: 'xx',age: 20,gender: '男'}for (let k in obj) {console.log(k)  // k 是屬性名, k字符串類型console.log(obj[k])  }

上述字符串的查找方式,上文有介紹過?

?

12.5 內置對象

?

?

?

十三、隨機數函數

let num = Math.random()  // 返回一個 0-1 之間的隨機小數, 包括0 ,不包括 1
console.log(num)

?生成0-10的隨機數:

// 生成0-10的隨機數:
Math.floor(Math.random() * (10+1))  // 向下取整

?同理:

// 生成5-10的隨機數Math.floor(Math.random() * (5+1)) + 5// 生成N-M的隨機數
Math.floor(Math.random() * (M-N+1)) + N

?案例:

let arr = [1, 2, 3]
let n = Math.floor(Math.random() * (arr.length))
console.log(arr[n]);

十四、總結

本片博客介紹了JavaScript的基礎知識的內容,是自己學完后的總結,希望也可以幫助正在學習的你,后續也會繼續更新js高級的相關知識。

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

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

相關文章

Cypress:前端自動化測試的終極利器

引言&#xff1a; 在現代軟件開發中&#xff0c;前端自動化測試已經成為了一個不可或缺的環節。它不僅可以提高開發效率&#xff0c;減少手動測試的工作量&#xff0c;還可以保證軟件的穩定性和質量。而在眾多的前端自動化測試工具中&#xff0c;Cypress無疑是其中的佼佼者。本…

openGauss學習筆記-144 openGauss 數據庫運維-例行維護-慢sql診斷

文章目錄 openGauss學習筆記-144 openGauss 數據庫運維-例行維護-慢sql診斷144.1 背景信息144.2 前提條件 openGauss學習筆記-144 openGauss 數據庫運維-例行維護-慢sql診斷 144.1 背景信息 在SQL語句執行性能不符合預期時&#xff0c;可以查看SQL語句執行信息&#xff0c;便…

文章解讀與仿真程序復現思路——中國電機工程學報EI\CSCD\北大核心《考慮垃圾處理與調峰需求的可持續化城市多能源系統規劃》

這個標題涵蓋了城市多能源系統規劃中的兩個重要方面&#xff1a;垃圾處理和調峰需求&#xff0c;并強調了規劃的可持續性。 考慮垃圾處理&#xff1a; 含義&#xff1a; 垃圾處理指的是城市廢棄物的管理和處置。這可能涉及到廢物分類、回收利用、焚燒或填埋等方法。重要性&…

GIS入門,Leaflet介紹,Leaflet可以做什么,網頁中如何使用Leaflet地圖,vue中如何使用Leaflet地圖

VueLeafLet教程推薦&#xff1a;《VueLeaflet入門》 Leaflet介紹 Leaflet是一個開源的JavaScript庫&#xff0c;用于創建交互式的地圖和地圖應用。Leaflet框架具有輕量級、靈活性強、易于使用和擴展等特點&#xff0c;支持各種地圖服務商&#xff08;如OpenStreetMap、Google…

前端知識筆記(三十八)———HTTPS:保護網絡通信安全的關鍵

當談到網絡通信和數據傳輸時&#xff0c;安全性是一個至關重要的問題。在互聯網上&#xff0c;有許多敏感信息需要通過網絡進行傳輸&#xff0c;例如個人身份信息、銀行賬戶信息和商業機密等。為了保護這些信息不被未經授權的人訪問和篡改&#xff0c;HTTPS&#xff08;超文本傳…

【開源】基于Vue+SpringBoot的河南軟件客服系統

文末獲取源碼&#xff0c;項目編號&#xff1a; S 067 。 \color{red}{文末獲取源碼&#xff0c;項目編號&#xff1a;S067。} 文末獲取源碼&#xff0c;項目編號&#xff1a;S067。 目錄 一、摘要1.1 項目介紹1.2 項目錄屏 二、功能模塊2.1 系統管理人員2.2 業務操作人員 三、…

搞懂內存函數

引言 本文介紹memcpy的使用和模擬實現、memmove的使用和模擬實現、memcmp使用、memset使用 ? 豬巴戒&#xff1a;個人主頁? 所屬專欄&#xff1a;《C語言進階》 &#x1f388;跟著豬巴戒&#xff0c;一起學習C語言&#x1f388; 目錄 引言 memcpy memcpy的使用 memcpy的…

JS加密/解密之HOOK實戰2

上一篇文章介紹了HOOK常規的應用場景&#xff0c;這篇我們講一下HOOK其他原生函數。又是一個新的其他思路 很多時候&#xff0c;當我們想要某些網站的請求參數的時候&#xff0c;因為某些加密導致了獲取起來很復雜。 這時候hook就十分方便了 源代碼 var _JSON_Parse JSON.…

scp 指令詳細介紹

目錄 1. 基本語法 2. 例子 從本地到遠程 從遠程到本地 從遠程到遠程 使用端口和指定私鑰 遞歸復制目錄 3. 注意事項 如何拷貝文件的軟鏈接 SCP&#xff08;Secure Copy Protocol&#xff09;是一種用于在計算機之間安全地傳輸文件的協議。它通過加密的方式在網絡上安全…

Vue:Vue的開發者工具不顯示Vue實例中的data數據

一、情況描述 代碼&#xff1a; 頁面&#xff1a; 可以看到&#xff0c;input獲取到了data數據&#xff0c;但是&#xff0c;vue-devtool沒有獲取到data數據 二、解決辦法 解決辦法1&#xff1a; data.name的值不能全是中文&#xff0c;比如改成aa尚硅谷 解決辦法2&…

C語言 編程題

C語言學習&#xff01; 1.小明上課需要走n階臺階&#xff0c;他每次可以選擇走一階或者走兩階&#xff0c;他一共有多少種走法&#xff1f; 輸入描述&#xff1a;輸入包含一個整數n&#xff08;1 ≤ n ≤30&#xff09; 輸出描述&#xff1a;輸出一個整數&#xff0c;即小明可…

LeetCode 1457. 二叉樹中的偽回文路徑||位運算 DFS

1457. 二叉樹中的偽回文路徑 給你一棵二叉樹&#xff0c;每個節點的值為 1 到 9 。我們稱二叉樹中的一條路徑是 「偽回文」的&#xff0c;當它滿足&#xff1a;路徑經過的所有節點值的排列中&#xff0c;存在一個回文序列。 請你返回從根到葉子節點的所有路徑中 偽回文 路徑的…

Golang優雅實現按比例切分流量

我們在進行灰度發布時&#xff0c;往往需要轉發一部分流量到新上線的服務上&#xff0c;進行小規模的驗證&#xff0c;隨著功能的不斷完善&#xff0c;我們也會逐漸增加轉發的流量&#xff0c;這就需要按比例去切分流量&#xff0c;那么如何實現流量切分呢&#xff1f; 我們很容…

力扣(LeetCode)-1. 兩數之和

給定一個整數數組 nums 和一個整數目標值 target&#xff0c;請你在該數組中找出 和為目標值 target 的那 兩個 整數&#xff0c;并返回它們的數組下標。 你可以假設每種輸入只會對應一個答案。但是&#xff0c;數組中同一個元素在答案里不能重復出現。 你可以按任意順序返回…

【交流】PHP生成唯一邀請碼

目錄 前言&#xff1a; 1.隨機生成&#xff0c;核對user表是否已存在 代碼&#xff1a; 解析&#xff1a; 缺點&#xff1a; 2.建表建庫&#xff0c;每次從表中隨機抽取一條&#xff0c;用完時擴充 表結構 表視圖 代碼 解析 缺點 結論&#xff1a; 前言&#xff1a; …

LinuxBasicsForHackers筆記 -- 壓縮和歸檔

壓縮分為有損或無損。有損壓縮對于減小文件大小非常有效&#xff0c;但會丟失信息的完整性。換句話說&#xff0c;壓縮后的文件與原始文件并不完全相同。 這種類型的壓縮非常適合圖形、視頻和音頻文件&#xff0c;文件中的微小差異幾乎不會被注意到。 本章重點介紹這種無損壓縮…

解讀Stable Video Diffusion:詳細解讀視頻生成任務中的數據清理技術

Diffusion Models視頻生成-博客匯總 前言:Stable Video Diffusion已經開源一周多了,技術報告《Stable Video Diffusion: Scaling Latent Video Diffusion Models to Large Datasets》對數據清洗的部分描述非常詳細,雖然沒有開源源代碼,但是博主正在嘗試復現其中的操作。這篇…

醫學影像PACS信息化數字平臺源碼

PACS系統對醫院影像科意義重大&#xff0c;將業務量巨大的影像檢驗流程依托于信息化技術&#xff0c;對于進行信息化建設的醫院而言&#xff0c;是十分必要的。 PACS系統源碼&#xff0c;集成三維影像后處理功能&#xff0c;包括三維多平面重建、三維容積重建、三維表面重建、三…

包裝類, 泛型---java

目錄 一. 包裝類 1.1 基本數據類型和對應的包裝類 1.2 裝箱和拆箱 二. 泛型 2.1什么是泛型 2.2泛型的引入 2.3 泛型類語法 2.4 泛型類的使用 2.5 裸類型(Raw Type)(了解) 2.6 泛型是如何編譯的 2.7 泛型的上界 2.8 泛型方法 一. 包裝類 在 Java 中&#xff0c;由于基本…

uniapp實戰 —— 豎排多級分類展示

效果預覽 完整范例代碼 頁面 src\pages\category\category.vue <script setup lang"ts"> import { getCategoryTopAPI } from /apis/category import type { CategoryTopItem } from /types/category import { onLoad } from dcloudio/uni-app import { compu…