7月29日前端学习笔记

news/2024/11/15 8:22:18/

今日内容:     setInterval    setTimeout 


js基本语法

        js是脚本语言,使用<script></script>标签,写在</body>的上面;弱类型语言 变量可以指向任意的量。

定义函数

        function easymethod(){}//常规设置

        var Method=function(a,b){}//变量式设置

         var Method=function(a,b){if(a){console.log(true);}else{console.log(false);}console.log(a+"------");console.log(b+"-------");console.log(arguments);}

                Method();//没传量a和b就是undefined  判断为false
                Method(10,11,12);//多出来的都在arguments,数组形式

判断类型

        使用typeof关键字,例如:var str="123";typeof str;

对象操作

        function easymethod(){
                //在浏览器的控制台打印测试数据
                console.log("this is easymethod")
                //声明对象
                //弱类型语言 变量可以指向任意的量
                var name="张三"//局部变量
                let obj={};//定义类
                obj.name="李四";//添加属性
                obj["sex"]="男";//[]变量或字符串表示obj.sex="男";
                delete obj.sex;//删除属性
                obj.study=function(){//定义成员属性
                var s="ab\"c";//\是转义符  

                var arr=[];//定义数组
                const username="张三"; //常量
              
            }

        var Method=function(a,b){
                if(a){
                    console.log(true);
                }else{
                    console.log(false);
                }
                console.log(a+"------");
                console.log(b+"-------");
                console.log(arguments);
            }

对数组操作

                js中数组无长度 类型限制,没有下标越界;

            //头部添加
            arr.unshift("头部");
            console.log(arr);
            
            //从尾部添加
            arr.push("尾部");
            console.log(arr);
            
            //从头部删除
            arr.shift();
            console.log(arr);
            
            //从尾部删除
            arr.pop();
            console.log(arr);
            
            //删除并插入
            arr=[1,2,3,4];
            arr.splice(1);//删除下标位置以及其后所有元素
            console.log(arr);
            arr=[1,2,3,4];
            arr.splice(1,1,33,44,55);//删除下标位置删除指定个数,添加元素,追加在下标为1的位置
            console.log(arr);

点击事件onclick

        <button type="button" οnclick="easymethod()">点击</button>

        点击按钮调用easymethod方法;

DOM

        全称document object model,是直接对标签进行操作。

常用方法

获取dom组件对象

        var btn=document.getElementById("btn");//根据id获取组件对象

        //设置标签内容
        // box.innerHTML="<h1>变化了</h>";
        //改变标签内文本
        box.innerText="变化了";

使用举例:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title></head><body><div id="box">变化</div><button type="button" id="btn" >点击</button><script>//DOM操作  对标签进行操作function clickme(){console.log("ok");let box=document.getElementById("box");box=document.getElementsByTagName()//设置标签内容// box.innerHTML="<h1>变化了</h>";//改变标签内文本box.innerText="变化了";}//获取dom组件对象var btn=document.getElementById("btn");btn.onclick=clickme;</script></body>
</html>

setInterval和setTimeout

         是JavaScript中用于定时执行代码的两个函数。

setInterval(function, delay)每隔指定的延迟时间(毫秒)重复执行一次给定的函数。

                clearInterval();用于取消之前通过 setInterval() 设置的重复执行的定时器。

// 设置一个定时器,每秒执行一次
var intervalId = setInterval(function() {console.log("这个信息会每秒打印一次,直到定时器被取消");
}, 1000);// 取消上面设置的定时器
clearInterval(intervalId);

setTimeout(function, delay)在指定的延迟时间(毫秒)后执行一次给定的函数。

 组合使用:

                var interval=setInterval(function(){console.log("执行")},100);setTimeout(function(){//清空之前计时显示clearInterval(interval);},800);

扩展:

<input class="maxBox" type="text" id="txt" placeholder="请在里面输入号码最大值!">

const txt=document.getElementById("txt");      

//不允许更改文本内容
txt.setAttribute("readonly", "readonly");

//输入框删除readonly
txt.removeAttribute("readonly");

使用实例:随机抽取数据

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><style type="text/css">.maxBox {padding: 4px 6px;font-size: 16px;color: #3EAFE0;}.clickBtn {border: 1px solid #3EAFE0;background-color: #3EAFE0;color: #FFF;font-size: 14px;padding: 4px 6px;}.result {font-size: 80px;color: #3EAFE0;font-weight: bold;padding: 30px;}.txt_center {text-align: center;}.exist {border: 1px solid #EEE;padding: 20px;margin: 20px auto;width: 600px;min-height: 100px;text-align: left;}.exist span {display: inline-block;padding: 2px 10px;margin: 4px;border-radius: 3px;background-color: #3EAFE0;color: #FFFFFF;}.info {border: 1px solid blue;color: #000;font-weight: 500;padding: 20px;margin: 20px auto;width: 600px;}</style>
</head><body><div class="txt_center"><div class="result"><span class="" id="result">0</span></div><input class="maxBox" type="text" id="txt" placeholder="请在里面输入号码最大值!"><input class="clickBtn" type="button" id="btn" value="抽号"><div class="exist"><div>已抽取:</div><div id="exist"><span>23</span><span>65</span><span>12</span></div></div></div><!--练习说明--><div class="info">1、在文本框中输入抽号最大值<br/> 2、点击按钮,开始抽号,随机生成1~最大值之间的整数<br/> 3、已经抽取的号码存入一个数组<br/> 4、为了保证号码的唯一性,每次生成一个号码,跟数组中的已抽取的号码比对<br/> 5、如果已存在,重新生成号码<br/> 6、如果不存在,放入数组中保存,并显示出来<br/> 7、将号码结果放入result中显示出来<br/> 8、将已经生成的号码(数组)存入exist中显示出来<br/> 9、给抽号按钮添加一个3s倒计时,倒计时结束前不可点击按钮</div><script>const btn=document.getElementById("btn");const txt=document.getElementById("txt");const exist=document.getElementById("exist");const result=document.getElementById("result");var start=false;btn.onclick=method;const arr=[];function method(){var val=txt.value;if(!val){alert("请输入数字");}else {if(!start){start=true;txt.setAttribute("readonly","readonly");for(var i=0;i<val;i++){arr[i]=Number(i+1);}exist.innerHTML="";}else if(start&&arr.length==0){txt.removeAttribute("readonly");start=false;txt.value="";return;}var interval=setInterval(function(){let ran=Math.floor(Math.random()*(arr.length));var num=arr[ran];result.innerText=num;},100);setTimeout(function(){//清空之前计时显示clearInterval(interval);var numIndex=Math.floor(Math.random()*(arr.length));var num=arr[numIndex];result.innerText=num;exist.innerHTML=exist.innerHTML+"<span>"+num+"</span>";arr.splice(numIndex,1);//},800);}}//每300毫秒执行一次// setInterval(function(){// 	console.log(Math.random());// },300);		// setTimeout(function(){// 	console.log(Math.random());// },300);		// const btn=document.getElementById("btn");// const txt=document.getElementById("txt");// const result=document.getElementById("result");// const exist=document.getElementById("exist");// const arr=[];// var start=false;// btn.onclick=method;// function method(){// 	//获取输入框的内容// 	var val=txt.value;// 	//如果输入框没有数据,提示填入数据,// 	//如果有就:// 	if(!val){// 		alert("请输入内容");// 	}else{// 		if(!start){// 			//不是则就初始化,并抽号// 			start=true;// 			//不允许更改// 			txt.setAttribute("readonly", "readonly");// 			//准备数组// 			for(var i=1;i<=Number(val);i++){// 				arr[i-1]=i;// 			}// 			// console.log(arr);// 			//清空之前选择出来的内容// 			exist.innerHTML="";// 		}// 		//如果是启动状态,并且数组没有可选元素,恢复可填入状态// 		if(start&&arr.length==0){// 			//输入框清空// 			txt.value="";// 			//输入框删除readonly// 			txt.removeAttribute("readonly");// 			//状态改为false;// 			start=false;// 			//并且结束方法// 			return;// 		}// 		//如果是开始状态就抽号// 		//随机下标,获取下标位置内容// 		let ranIndex=Math.floor(Math.random()*(arr.length));// 		// console.log(ranIndex);// 		let num=arr[ranIndex];// 		//将内容显示在result中,追加在exist组件中,// 		result.innerText=num;// 		exist.innerHTML=exist.innerHTML+"<span>"+num+"</span>";// 		//将该位置的元素删除// 		arr.splice(ranIndex,1);// 		//要有一个数组,如果没有数据提示抽完,并且将状态改为false;// 	}// }</script>
</body></html>


http://www.ppmy.cn/news/1504134.html

相关文章

探索有赞小程序:揭秘其强大的组件库功能!

有赞小程序组件库是针对有赞小程序开发者提供的一套组件&#xff0c;它提供了丰富的功能和样式&#xff0c;方便开发者快速搭建和定制各种有赞小程序页面。下面将从四个方面对有赞小程序组件库的功能做详细的阐述。 1、UI组件 可实时在线编辑的设计工具——即时设计https://a…

C++篇:C++入门基础(1)

C前言&#xff1a; C 的发展历史可以追溯到1979年&#xff0c;当时C语言以其效率和灵活性成为广泛使用的系统编程语言&#xff0c;但它也有一些限制&#xff0c;例如缺乏直接支持面向对象编程&#xff08;OOP&#xff09;的特性。 之后Bjarne Stroustrup(也就是C之父)是C的创始…

现代体育运动的特征与21世纪发展取向:融合、创新与可持续的赛道

现代体育运动的特征与21世纪发展取向&#xff1a;融合、创新与可持续的赛道 引言 在21世纪的曙光中&#xff0c;体育运动作为人类文化的重要组成部分&#xff0c;正以前所未有的速度演变和发展。它不仅承载着强身健体、竞技比拼的传统功能&#xff0c;更在全球化、数字化的浪…

Nvidia黄仁勋对话Meta扎克伯格:AI和下一代计算平台的未来 | SIGGRAPH 2024对谈回顾

在今年的SIGGRAPH图形大会上&#xff0c;Nvidia创始人兼CEO黄仁勋与Meta创始人马克扎克伯格进行了一场长达60分钟的对谈。这场对话不仅讨论了AI的未来发展和Meta的开源哲学&#xff0c;还发布了不少新产品&#xff0c;并深入探讨了下一代计算平台的可能性。 引言 人工智能的发…

【过题记录】 8.2 hddx

飞行棋 关于这一题 我在考场上手莫了n2和n3的情况 发现一点规律&#xff0c;大力猜想蒙了一个结论 结果蒙对了… 关于正确做法&#xff0c;发现零号点和其他几个点是不一样的。 因为对于0而言&#xff0c;他没有赠送的情况(只要摇到n就直接胜利) 因此0和其他点要分开讨论 对于…

图像处理案例03

HOGSVM数字识别 1 . 步骤2 . 代码 1 . 步骤 读入数据&#xff0c;把数据划分为训练集和测试集用hog提取特征用SVM训练数据测试、评价模型保存模型加载模型&#xff0c;应用模型 2 . 代码 import os import cv2 import sklearn import numpy as np from skimage.feature impo…

【数据结构】——链式二叉树

目录 一、链式二叉树的定义结构 二、链式二叉树的遍历 2.1前序遍历 2.2中序遍历 2.3后序遍历 2.4层序遍历 三、链式二叉树的基本功能函数 3.1结点个数 3.2叶子结点个数 3.3二叉树第k层结点个数 3.4查找值为x的结点 3.5二叉树的销毁 四、基础OJ 4.1二叉树遍历 4.2…

常用游戏开发软件横向对比

最近想试试开发游戏&#xff0c;简单查了一下&#xff0c;Mark吧。 排名不分先后&#xff1a; 1. Unity 特点&#xff1a; 跨平台支持&#xff1a;Unity支持超过25个平台&#xff0c;包括iOS、Android、Windows、macOS、Linux、WebGL、PlayStation、Xbox、Switch等。强大的…