【JavaScript】九、JS基礎練習

文章目錄

  • 1、練習:對象數組的遍歷
  • 2、練習:猜數字
  • 3、練習:生成隨機顏色

1、練習:對象數組的遍歷

需求:定義多個對象,存數組,遍歷數據渲染生成表格

let students = [{ name: '小明', age: 18, gender: '男', hometown: '河北省' },{ name: '小紅', age: 19, gender: '女', hometown: '河南省' },{ name: '小剛', age: 17, gender: '男', hometown: '山西省' },{ name: '小麗', age: 18, gender: '女', hometown: '山東省' }
]
for (let i = 0; i < students.length; i++) {for (let key in students[i]) {console.log(students[i][key])	// 拿到每個對象后,for in遍歷對象}
}

一般來說,目前沒有學dom操作,打印下面這個表格,都是先寫出死的html,再把html分塊剪切到script標簽中,使用document.write來輸出html標簽

在這里插入圖片描述
靜態html:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>table {width: 600px;text-align: center;}table,th,td {border: 1px solid #ccc;border-collapse: collapse;}caption {font-size: 18px;margin-bottom: 10px;font-weight: 700;}tr {height: 40px;cursor: pointer;}table tr:nth-child(1) {background-color: #ddd;}table tr:not(:first-child):hover {background-color: #eee;}</style>
</head><body><h2>學生信息</h2><p>將數據渲染到頁面中...</p><table><caption>學生列表</caption><tr><th>序號</th><th>姓名</th><th>年齡</th><th>性別</th><th>家鄉</th></tr><tr><td>1</td><td>小明</td><td>18</td><td></td><td>河北省</td></tr><tr><td>1</td><td>小明</td><td>18</td><td></td><td>河北省</td></tr><tr><td>1</td><td>小明</td><td>18</td><td></td><td>河北省</td></tr><tr><td>1</td><td>小明</td><td>18</td><td></td><td>河北省</td></tr><tr><td>1</td><td>小明</td><td>18</td><td></td><td>河北省</td></tr><tr><td>1</td><td>小明</td><td>18</td><td></td><td>河北省</td></tr></table></body></html>

結合JS:

<body><h2>學生列表</h2><table><tr><th>序號</th><th>姓名</th><th>年齡</th><th>性別</th><th>家鄉</th></tr><script>let students = [{ name: '小明', age: 18, gender: '男', hometown: '河北省' },{ name: '小紅', age: 19, gender: '女', hometown: '河南省' },{ name: '小剛', age: 17, gender: '男', hometown: '山西省' },{ name: '小麗', age: 18, gender: '女', hometown: '山東省' }]for (let i = 0; i < students.length; i++) {// 拿到每一個對象let student = students[i]document.write(`<tr><td>${i + 1}</td>`)// 遍歷對象的每個屬性for (let key in student) {document.write(`<td>${student[key]}</td>       `)}// 一行數據寫完了,打印結束標簽document.write(`</tr>`)}</script></table></body>

但這里想復雜了,沒必要普通for套一個for in,直接一層for循環:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>table {width: 600px;text-align: center;}table,th,td {border: 1px solid #ccc;border-collapse: collapse;}caption {font-size: 18px;margin-bottom: 10px;font-weight: 700;}tr {height: 40px;cursor: pointer;}table tr:nth-child(1) {background-color: #ddd;}table tr:not(:first-child):hover {background-color: #eee;}</style>
</head><body><h2>學生信息</h2><p>將數據渲染到頁面中...</p><table><caption>學生列表</caption><tr><th>序號</th><th>姓名</th><th>年齡</th><th>性別</th><th>家鄉</th></tr><!-- 數據部分才需要渲染,表頭不用,所以script寫這兒 --><script>// 數據準備let students = [{ name: '小明', age: 18, gender: '男', hometown: '河北省' },{ name: '小紅', age: 19, gender: '女', hometown: '河南省' },{ name: '小剛', age: 17, gender: '男', hometown: '山西省' },{ name: '小麗', age: 18, gender: '女', hometown: '山東省' }]// 渲染頁面for (let i = 0; i < students.length; i++) {// 模板字符串+document.write輸出標簽document.write(`<tr><td>${i + 1}</td><td>${students[i].name}</td><td>${students[i].age}</td><td>${students[i].gender}</td><td>${students[i].hometown}</td></tr>`)}document.write</script></table></body></html>

這里本質是遍歷數組 + 獲取對象的屬性值,那么查對象的兩種語法都可以用,不必硬套for in

2、練習:猜數字

需求:程序隨機生成 1~10 之間的一個數字,用戶輸入一個數字

  • 如果大于該數字,就提示,數字猜大了,繼續猜
  • 如果小于該數字,就提示,數字猜小了,繼續猜
  • 如果猜對了,就提示猜對了,程序結束
<body><script>function guessNum(num = 0) {let random = Math.floor(Math.random() * 10 + 1)console.log(random)let count = 1// 或者while (true)for (; ;) {if (count >= 4) {alert(`超過四次沒猜對了,答案是${random}`)break}if (num === random) {alert('猜對了~')break} else if (num > random) {alert('猜大了!')count++num = +prompt('請重新輸入一個數字')} else if (num < random) {alert('猜小了!')count++num = +prompt('請重新輸入一個數字')}}}let num = +prompt('請輸入一個數字')guessNum(num)</script>
</body>

3、練習:生成隨機顏色

需求:該函數接收一個布爾類型參數,表示顏色的格式是十六進制還是rgb格式

  • 提示: 16進制顏色格式為: #ffffff, 其中f可以是任意 0-f之間的字符,需要用到數組,
    let arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f']
  • 提示: rgb顏色格式為: rgb(255,255,255) ,其中255可以是任意0-255之間的數字
<body><script>// 隨機顏色function getRandomColor(format = true) {let result = ''if (!format) {// 返回rgb(255,255,255)格式let r = Math.floor(Math.random() * 256)let g = Math.floor(Math.random() * 256)let b = Math.floor(Math.random() * 256)result = `rbg(${r},${g},${b})`} else {result = '#'let array = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f']for (let i = 1; i <= 6; i++) {let random = Math.floor(Math.random() * array.length)result = result + array[random]}}return result;}document.write(getRandomColor(true))</script>
</body>

VsCode中,Alt + ?? 或者option + ??,把一行代碼直接向下移動,不用剪切后復制

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

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

相關文章

代碼隨想錄day31 貪心part05

56.合并區間 以數組 intervals 表示若干個區間的集合&#xff0c;其中單個區間為 intervals[i] [starti, endi] 。請你合并所有重疊的區間&#xff0c;并返回 一個不重疊的區間數組&#xff0c;該數組需恰好覆蓋輸入中的所有區間 。 示例 1&#xff1a; 輸入&#xff1a;in…

《C++11:通過thread類編寫C++多線程程序》

關于多線程的概念與理解&#xff0c;可以先了解Linux下的底層線程。當對底層線程有了一定程度理解以后&#xff0c;再學習語言級別的多線程編程就輕而易舉了。 【Linux】多線程 -&#xff1e; 從線程概念到線程控制 【Linux】多線程 -&#xff1e; 線程互斥與死鎖 語言級別的…

c++位運算總結

在C中&#xff0c;位運算是對二進制位進行操作的運算&#xff0c;主要有以下幾種&#xff1a; 1. 按位與&#xff08; & &#xff09;&#xff1a;兩個操作數對應位都為1時&#xff0c;結果位才為1&#xff0c;否則為0。例如 3 & 5 &#xff0c; 3 二進制是 0000 0011…

1.1 計算機網絡的概念

首先來看什么是計算機網絡&#xff0c;關于計算機網絡的定義并沒有一個統一的標準&#xff0c;不同的教材有 不同的說法&#xff08;這是王道書對于計算機網絡的定義&#xff09;&#xff0c;我們可以結合自己的生活經驗去體會這個 定義。 可以用不同類型的設備去連接計算機網絡…

用LLama factory時報類似Process 2504721 got signal: 1的解決方法

之前用nohup來遠程跑LLama factory微調腳本&#xff0c;是沒有問題的&#xff0c;但今天發現運行類似下面這個命令時&#xff0c; nohup llamafactory-cli train examples/train_qlora/qwen_lora.yaml 只要一關閉ssh session&#xff0c;就會終止訓練&#xff0c;報類似&…

python常用內置時間函數+藍橋杯時間真題

1.time 1.1 time.time() 時間戳指&#xff1a;1970年1月1日開始到現在所經過的秒數 import time print(time.time()) # 輸出可得1970年1月1日開始到執行此代碼所經過的秒數 1.2 time.localtime() 返回一個當前時間的時間對象&#xff0c;具體信息&#xff0c;并且可以單獨…

一個用 C 語言打印出所有三位數水仙花數的程序

水仙花數&#xff08;Narcissistic number&#xff09;是指一個三位數&#xff0c;其各位數字的立方和等于該數本身。例如&#xff1a;153 是一個水仙花數&#xff0c;因為 (1^3 5^3 3^3 153)。 以下是一個用 C 語言打印出所有三位數水仙花數的程序&#xff1a; 代碼實現 …

利用 VSCode 配置提升 vibe coding 開發效率

利用 VSCode 配置提升 vibe coding 開發效率 Vibe Coding&#xff08;氛圍編程&#xff09;是一種基于AI的編程方法&#xff0c;其核心在于通過自然語言描述軟件需求&#xff0c;再由大規模語言模型&#xff08;LLM&#xff09;自動生成代碼&#xff0c;從而實現對傳統手寫編程…

練習題:110

目錄 Python題目 題目 題目分析 需求理解 關鍵知識點 實現思路分析 代碼實現 代碼解釋 函數定義&#xff1a; 計算值的總和&#xff1a; 測試函數&#xff1a; 運行思路 結束語 Python題目 題目 定義一個函數&#xff0c;接受一個字典作為參數&#xff0c;返回字…

處理 Linux 信號:進程控制與異常管理的核心

個人主頁&#xff1a;chian-ocean 文章專欄-Linux 前言&#xff1a; 在 Linux 操作系統中&#xff0c;信號是用于進程間通信的一種機制&#xff0c;能夠向進程發送通知&#xff0c;指示某些事件的發生。信號通常由操作系統內核、硬件中斷或其他進程發送。接收和處理信號是 Li…

通信協議之串口

文章目錄 簡介電平標準串口參數及時序USART與UART過程引腳配置 簡介 點對點&#xff0c;只能兩設備通信只需單向的數據傳輸時&#xff0c;可以只接一根通信線當電平標準不一致時&#xff0c;需要加電平轉換芯片&#xff08;一般從控制器出來的是信號是TTL電平&#xff09;地位…

Unity編輯器功能及拓展(1) —特殊的Editor文件夾

Unity中的Editor文件夾是一個具有特殊用途的目錄&#xff0c;主要用于存放與編輯器擴展功能相關的腳本和資源。 一.糾纏不清的UnityEditor 我們Unity中進行游戲構建時&#xff0c;我們經常遇到關于UnityEditor相關命名空間丟失的報錯&#xff0c;這時候&#xff0c;只得將報錯…

工具類-csv文件導入數據庫思路

首先&#xff0c;讓我們來看下數據庫建表語句&#xff1a; CREATE TABLE behavior_reports (id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT 報告ID,report_type VARCHAR(50) NOT NULL COMMENT 報告類型(daily, weekly, monthly),start_date DATE NOT NULL COMMENT 開始日期,e…

軟件工程之軟件開發模型(瀑布、迭代、敏捷、DevOps)

1. 瀑布模型&#xff08;Waterfall Model&#xff09; 定義與流程 瀑布模型是線性順序的開發流程&#xff0c;包含需求分析、設計、編碼、測試、維護等階段&#xff0c;每個階段完成后才能進入下一階段&#xff0c;類似“瀑布流水”逐級推進。 核心特點 嚴格階段劃分&#…

FreeRTOS與RT-Thread內存分配對比分析

一、動態內存分配策略 ?FreeRTOS ?分配算法多樣性&#xff1a;提供5種動態內存管理算法&#xff08;heap_1至heap_5&#xff09;&#xff0c;覆蓋從簡單到復雜的場景。例如&#xff1a; heap_1&#xff1a;僅支持分配不支持釋放&#xff0c;適用于固定任務棧分配。heap_4&…

202519 | Mybatis-Plus

快速入門 MyBatis-Plus&#xff08;簡稱 MP&#xff09;是 MyBatis 的增強工具&#xff0c;它在 MyBatis 的基礎上只做增強不做改變&#xff0c;簡化了開發&#xff0c;提高了效率。以下是 MyBatis-Plus 的快速入門指南&#xff0c;幫助您快速上手使用。 1. 環境準備 JDK&…

Linux C語言調用第三方庫,第三方庫如何編譯安裝

在 Linux 環境下使用 C 語言調用第三方庫時&#xff0c;通常需要先對第三方庫進行編譯和安裝。以下為你詳細介紹一般的編譯安裝步驟&#xff0c;并給出不同類型第三方庫&#xff08;如使用 Makefile、CMake 構建系統&#xff09;的具體示例。 一般步驟 1. 獲取第三方庫源碼 …

linux基本命令(1)--linux下的打包命令 -- tar 和gzip

tar 解壓 &#xff0c;打包 語法&#xff1a;tar [主選項輔選項] 文件或者目錄 使用該命令時&#xff0c;主選項是必須要有的&#xff0c;它告訴tar要做什么事情&#xff0c;輔選項是輔助使用的&#xff0c;可以選用。 主選項&#xff1a; c 創建新的檔案文件。如果用戶想備…

Python 序列構成的數組(對序列使用+和_)

對序列使用和* Python 程序員會默認序列是支持 和 * 操作的。通常 號兩側的序列由 相同類型的數據所構成&#xff0c;在拼接的過程中&#xff0c;兩個被操作的序列都不會被 修改&#xff0c;Python 會新建一個包含同樣類型數據的序列來作為拼接的結果。 如果想要把一個序列…

[ C語言 ] | 從0到1?

目錄 認識計算機語言 C語言 工欲善其事必先利其器 第一個C語言代碼 這一些列 [ C語言 ] &#xff0c;就來分享一下 C語言 相關的知識點~ 認識計算機語言 我們說到計算機語言&#xff0c;語言&#xff0c;就是用來溝通的工具&#xff0c;計算機語言呢&#xff1f;就是我們…