news 2026/8/25 14:20:58

js实践小案例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
js实践小案例

弹框输入信息,页面自动渲染表格

<!DOCTYPEhtml><html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, initial-scale=1.0"><title>Document</title><style>table{border-collapse:collapse;height:80px;margin:0auto;text-align:center;}table,th,td{border:1px solid black;}th{padding:5px 20px;}</style></head><body><script>letname=prompt('请输入商品名称:')letprice=+prompt('请输入商品价格:')letnum=+prompt('请输入商品数量:')letaddress=prompt('请输入地址:')lettotal=price*num document.write(`<table> <caption>表格信息</caption> <thead> <tr> <th>商品名称</th> <th>商品价格</th> <th>商品数量</th> <th>商品总价</th> <th>收货地址</th> </tr> </thead> <tbody> <tr> <td>${name}</td> <td>${price}</td> <td>${num}</td> <td>${total}</td> <td>${address}</td> </tr> </tbody> </table>`)</script></body></html>

效果图如下

简易计算器 case-break

letnum1=+prompt('请输入第一个数:')letnum2=+prompt('请输入第二个数:')letopt=prompt('请输入一个运算符:')switch(opt){case'+':alert(`和为${num1+num2}`)break;case'-':alert(`和为${num1-num2}`)break;case'*':alert(`和为${num1*num2}`)break;case'/':alert(`和为${num1/num2}`)break;default:alert('请输入正确的运算符')}

爱我吗

lettext=prompt('你爱我吗')//注意这里 text != '爱' || text != 'yes' || text != 'love' 如果是或,只要有一个为真结果就为真,所以运算的结果永远为真while(text!=='爱'&&text!=='yes'&&text!=='love'){text=prompt('你爱我吗')//用新的text覆盖旧的}alert('我也爱你')

还有一种写法是

while(true){//循环条件永远为真,一直循环直到遇见breakletstr=prompt('你爱我吗')if(str==='爱'){break}}

while(true)怎么理解?
只要没说停,就一直重复执行里面的代码

打印九九乘法表

span{display:inline-block;padding:5px 10px;border:1px solid lightgreen;margin:4px;border-radius:5px;box-shadow:2px 2px 2px lightpink;text-align:center;}
for(leti=1;i<=9;i++){for(letj=1;j<=i;j++){document.write(`<span>${i}×${j}=${i*j}</span>`)}document.write('<br>')}

对象

//k属性名 obj[k]属性值for(letkinobj){//console.log(k)//打印的是属性名,字符串类型//console.log(obj.k)//字符串型,相当于写了下面这行代码//console.log(obj.'uname') //undefined// console.log(obj['属性名']) 查的另一种方式,可以变成下面那一行//console.log(obj[k]) //获得属性名}

随机点名

letarr=['赵云','黄忠','关羽','张飞']letrandom=Math.floor(Math.random()*arr.length)document.write(arr[random])//不允许重复,抽到过的删掉pop shift splice(起始位置,删除几个)arr.splice(random,1)console.log(arr)

猜数字游戏

functiongetRandom(N,M){// 生成n到m的整数,直接取整,不是四舍五入returnMath.floor(Math.random()*(M-N+1))+N}letrandom=getRandom(1,10)letflag=truefor(leti=0;i<3;i++){constnum=+prompt('请输入1-10的数字')if(num===random){alert('猜对了')flag=falsebreak}elseif(num<random){alert('猜小了')}else{alert('猜大了')}}//3次之后flag仍然是trueif(flag){alert('次数用完了')}

随机生成排列名单

<divclass="app"><strong>协会</strong><h1>一等奖:<span id="one">???</span></h1><h3>二等奖:<span id="two">???</span></h3><h5>三等奖:<span id="three">???</span></h5></div><script>constpersonArr=['张三','李四','王五','赵六','孙七']constrandom1=Math.floor(Math.random()*personArr.length)constone=document.querySelector('#one')one.innerHTML=personArr[random1]personArr.splice(random1,1)constrandom2=Math.floor(Math.random()*personArr.length)consttwo=document.querySelector('#two')two.innerHTML=personArr[random2]personArr.splice(random2,1)constrandom3=Math.floor(Math.random()*personArr.length)constthree=document.querySelector('#three')three.innerHTML=personArr[random3]personArr.splice(random3,1)</script>

快速滚动抽取名字

constarr=['嫦娥','貂蝉','大乔','小乔','朵朵']//开始:让名字快速滚动+随即索引,开启定时器//结束:让滚动停止,关闭定时器,删除名字,判断是否还可以抽conststart=document.querySelector('.start')constend=document.querySelector('.end')constask=document.querySelector('.ask')lettimeID=nullletrandom=0start.addEventListener('click',function(){timeID=setInterval(()=>{random=Math.floor(Math.random()*arr.length)ask.innerHTML=`名字是:${arr[random]}`},35)//写在start里,在开始前进行判断,防止数组为空if(arr.length===1){start.disabled=trueend.disabled=true}})end.addEventListener('click',function(){clearInterval(timeID)arr.splice(random,1)})
<style> *{box-sizing:border-box;}body{margin:0;min-height:100vh;background:#ffffff;font-family:"Microsoft YaHei",Arial,sans-serif;}.card{position:relative;width:710px;height:310px;margin:10px auto 0;border:1px solid #cccccc;box-shadow:0 2px 4px #999999;padding-top:10px;}h1{margin:0;text-align:center;font-size:24px;line-height:34px;color:#111111;}.question{position:absolute;top:96px;left:44px;margin:0;font-size:25px;color:#333333;}button{position:absolute;top:188px;width:126px;height:38px;border:1px solid #888888;border-radius:3px;background:#eeeeee;color:#222222;font-size:14px;cursor:pointer;}.start{left:178px;}.end{left:414px;}</style>

筛选不同价格区间的商品

functionrender(arr){letstr=''arr.forEach(item=>{const{price,name,picture}=item str+=`<div class="item"> <img src=${picture}alt="${item.name}"> <p class="name">${name}</p> <p class="price">${price}</p> </div>`})document.querySelector('.list').innerHTML=str}render(goodsList)//筛选document.querySelector('.filter').addEventListener('click',function(e){const{tagName,dataset}=e.targetif(tagName==='A'){// 移除所有 a 的 activedocument.querySelectorAll('.filter a').forEach(a=>{a.classList.remove('active')})letarr2=goodsListif(dataset.index==='1'){arr2=arr2.filter(item=>item.price>0&&item.price<100)}elseif(dataset.index==='2'){arr2=arr2.filter(item=>item.price>=100&&item.price<300)}elseif(dataset.index==='3'){arr2=arr2.filter(item=>item.price>=300)}render(arr2)}})

效果图如下

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/25 14:19:49

Agent 敢开写权限吗?—— 深入探讨 AI 代理的自主操作风险与安全边界

一、 引言&#xff1a;当 AI 获得“手”与“笔”随着 AI Agent&#xff08;智能代理&#xff09;能力的飞速发展&#xff0c;其已从单纯的“思考者”演变为能够调用工具、执行任务的“行动者”。一个核心且敏感的问题随之浮现&#xff1a;我们敢赋予 Agent 直接修改文件、写入数…

作者头像 李华
网站建设 2026/8/25 14:19:46

C++初阶——类和对象(下)

目录 一 再探构造函数 二 类型转换 三 static成员 四 友元 五 内部类 六 匿名对象 七 对象拷贝时的编译优化 一、再探构造函数之前实现构造函数时&#xff0c;初始化成员变量主要使用函数体内赋值&#xff0c;构造函数初始化还有一种方法&#xff0c;就是初始化列表每个…

作者头像 李华
网站建设 2026/8/25 14:16:46

AI 编程不得不知道的二三事

一句话记忆&#xff1a;模型是「大脑」&#xff0c;IDE/终端 Agent 是「手脚」&#xff0c;范式是「怎么用它」&#xff0c;MCP 等协议是「接口标准」&#xff0c;Coze/Dify 是「搭积木的台子」。 以下内容仅为一家之言&#xff0c;旨在统计AI相关的东西&#xff0c;目前以202…

作者头像 李华
网站建设 2026/8/25 14:11:12

隐匿中的生长:当代青年 “偷感” 现象解读

青年"偷感"现象&#xff1a;心态表征、生成机理与深层解读 一、现象&#xff1a;当"偷感"成为一种集体标签 “偷感"是近年来在青年群体中迅速蔓延的一个网络热词。微博话题 #偷感很重是什么梗# 的阅读量超过 7800 万&#xff0c;抖音 #偷感# 的播放…

作者头像 李华
网站建设 2026/8/25 14:09:32

2021CSP-J初赛真题解析(适合复习、巩固、备考)

【第一部分 选择题】 1.以下不属于面向对象程序设计语言的是&#xff08; &#xff09;。 A. C B. Python C. Java D. C 【解析】D。 C语言是一种面向过程的结构化程序设计语言。 2.以下奖项与计算机领域最相关的是&#xff08; &#xff09;。 A. 奥斯卡奖 B. 图灵奖 C. 诺贝尔…

作者头像 李华