javaScript 第四章 函数
函数,事件,对象
学会使用自定义函数
知道对象的概念。并且简单使用。
掌握常用事件
核心 函数 函数调用方法格式
测试
已知华氏度 = 摄氏度*9/5+32;
要求:范围300度以内,以30度为间隔,页面输出华氏度与摄氏度的对照表,要求10条数据。
var ss=0; document.write("<table border='1px' align='center'>") for(var i=1;i<=10;i++){ document.write("<tr>") hs=ss*9/5+32; document.write("<td>"+i+"</td>"+"<td>"+ss+"</td>"+"<td>"+hs+"</td>"); ss+=30; document.write("</tr>") }
一、函数、方法
1.1什么是函数:
函数是指一段可以直接被另一段程序或代码引用的程序或代码。也叫做子程序、(OOP中)方法。
一个较大的程序一般应分为若干个程序块,每一个模块用来实现一个特定的功能。所有的高级语言中都有子程序这个概念,用子程序实现模块的功能。在C语言中,子程序的作用是由一个主函数和若干个函数构成。由主函数调用其他函数,其他函数也可以互相调用。同一个函数可以被一个或多个函数调用任意多次。
在程序设计中,常将一些常用的功能模块编写成函数,放在函数库中供公共选用。要善于利用函数,以减少重复编写程序段的工作量。
函数百度百科
函数:
一段具有特定的功能的代码块。需要时调用,调用时执行!(自己不会主动执行!)
if{}:控制代码是否执行。
for{}:控制代码执行多少次。
function(){}:控制代码和时执行。调用时执行。
1.2函数的分类:
1库函数
s给我们提供的具有特定功能的代码块。
alert() prompt() document.write() Number() parseInt() 。。。 这都是函数 带括号的其实都是函数 自定义函数( 重点 ) 自己定义函数,根据自己的需求来定义功能。
1.3函数的定义和使用:
定义函数的格式: 参数列表和return都是可选的。可写可不写。 function 函数名(参数列表){ return 数据; }
函数的调用:
方式一:函数名(参数);
函数名(参数);
alert(“1111”);
方式二:跟标签绑定调用。
事件源:绑定的标签
事件类型:触发事件的操作。
触发的操作:发生的某一件事情
点我1号
方式三:绑定匿名函数:给确定的某一个标签绑定函数
1.拿到这个标签
如何拿到这个标签:
根据id属性取到标签对象
绑定匿名函数
document.getElementById(“id值”);
2.绑定匿名函数
btnEle.onclick = function(){
alert(“111”);
}
1.4、函数的应用
绑定事件函数的函数:
触发事件的事件原 , 某一个标签
什么时机触发 点击等
干什么 函数的主体代码块;
点击按钮改变页面颜色
<body> <!-- 点击按钮改变页面颜色 --> <button onclick="chagneColor2()">点我</button> <!-- <button onclick="chagneColor2()">点我</button> --> <script type="text/javascript"> function chagneColor(){ document.body.style.backgroundColor="red"; } document.body.style.backgroundColor="red" function chagneColor2(){ if(document.body.style.backgroundColor=="red"){ document.body.style.backgroundColor="blue"; }else if(document.body.style.backgroundColor=="blue"){ document.body.style.backgroundColor="yellow" }else if(document.body.style.backgroundColor=="yellow"){ document.body.style.backgroundColor="red"; } } </script> </body>
猜数字1-100
<body> <!-- 猜数字游戏 一个输入的值 定义一个按钮实现调用比较的函数 进行比大小 然后输出结果是猜到了还是猜大了猜小了 --> <fieldset id=""> <legend>猜数字</legend> 请输入数字:<input id="input" /><button type="button" onclick="a()">点击猜数字</button><br /> <span id="tex"> </span> <input type="" name="" id="text" value="" /> </fieldset> </body> <script type="text/javascript"> var i=parseInt(Math.random()*100); function a(){ var a1 =document.getElementById("input").value; if(a1==i){ document.getElementById("text").value=("猜对了"); }else if(a1>i){ document.getElementById("text").value=("猜大了"); }else { document.getElementById("text").value=("猜小了"); } } </script>
1.5函数的返回值和参数;
**返回值 return ** //返回值 ,就表示当函数执行完毕后会得到一个确定的数值
计算器 低级:
<body> <fieldset id=""> <!-- 计算器 两个输入的数据一个输出的数据 加减乘除四个按钮 input用value取值 inerText :取出标签的文本内容 innerHTML : 取出标签中的1所有内容 包括标签本身 outHTML: outerHTML: eval() 计算内部表达式的值; --> <legend>计算器</legend> 第一个<input id="one" /> 第二个<input id="two" /><br /> <button onclick="add()">+</button> <button onclick="jian()">-</button> <button onclick="cheng()">*</button> <button onclick="chu()">/</button> <br /> 结果:<span style="border: 1px solid red;" id="result"></span> </fieldset> <script type="text/javascript"> function add(){ var oneval=document.getElementById("one").value; var twoval=document.getElementById("two").value; document.getElementById("result").innerHTML=Number(oneval)+Number(twoval); } function jian(){ var oneval=document.getElementById("one").value; var twoval=document.getElementById("two").value; document.getElementById("result").innerHTML=Number(oneval)-Number(twoval); } function cheng(){ var oneval=document.getElementById("one").value; var twoval=document.getElementById("two").value; document.getElementById("result").innerHTML=Number(oneval)*Number(twoval); } function chu(){ var oneval=document.getElementById("one").value; var twoval=document.getElementById("two").value; document.getElementById("result").innerHTML=Number(oneval)/Number(twoval); } //经过观察发现 代码冗余 获取值的代码冗余,思考:可以将冗余代码抽取出来。 </script>
另一个版本
<fieldset id=""> <legend>计算器</legend> 第一个<input id="one" /> 第二个<input id="two" /><br /> <button onclick="jian(this)">+</button> <button onclick="jian(this)">-</button> <button onclick="jian(this)">*</button> <button onclick="jian(this)">/</button> <br /> 结果:<span style="border: 1px solid red;" id="result"></span> </fieldset> <script type="text/javascript"> function jian(a){ var oneval=document.getElementById("one").value; var twoval=document.getElementById("two").value; document.getElementById("result").value=eval(oneval+a.innerText+twoval);
innerText 表示 获取标签中的文本(内容) 不包含标签
innerHTML表示 获取标签中的所有内容(包含标签+本身)
outerHTML 表示获取当前标签中的所有内容 包含标签本身
如果是表单元素 取值用value 属性
如果是非表单元素 取值用 innerText,innerHTML,outerHTML
二、对象
2.1什么是对象
在软件系统中,对象具有唯一的标识符,对象包括属性(Properties)和(行为)方法(Methods),属性就是需要记忆的信息,方法就是对象能够提供的服务。
2.2js获取对象
js对象:html中的标签。
//根据id获取元素对象 获取的是一个
document.getElementById(“id”);
三、事件
3.1、什么是事件
事件是可以被控件识别的操作,如按下确定按钮,选择某个单选按钮或者复选框。每一种控件有自己可以识别的事件,如窗体的加载、单击、双击等事件,编辑框(文本框)的文本改变事件,等等。
发生的某件事情。通过html元素触发的事情。
3.2常用事件
1鼠标事件
* onclick | 点击事件 |
---|---|
ondblclick | 双击事件 |
onmousedown | 鼠标按下 |
onmouseup | 鼠标松开 |
onmouseover | 鼠标移入 |
onmouseout | 鼠标移开 |
2键盘事件
onkeydown | 按下 |
---|---|
onkeyup | 松开 |
onkeypress | 按下并松开 |
*onload | 页面加载完成时触发 |
---|---|
*onunload | 页面退出时触发 |
4.表单事件
onblur | 元素失去焦点时触发 | 2 |
---|---|---|
* onchange | 该事件在表单元素的内容改变时触发( , , , 和 ) | 2 |
* onfocus | 元素获取焦点时触发 | 2 |
oninput | 元素获取用户输入时触发 | 3 |
onreset | 表单重置时触发 | 2 |
onsearch | 用户向搜索域输入文本时触发 ( <input=“search”>) | |
onselect | 用户选取文本时触发 ( 和 ) | 2 |
* onsubmit | 表单提交时触发 |
总结:
函数,事件,对象
总结:函数 学会函数的定义和调用
调用:直接,跟标签事件绑定
对象:document.getElementById();
、
、
、
、、
练习
:4个文本框:省 市 县 详细地址按钮触发:整体地址文本框:拼接显示在整体地址中
<body> 省:<input type="" name="" id="s" value="" /> 市 :<input type="" name="" id="shi" value="" /> 县:<input type="" name="" id="x" value="" /> <button type="button" onclick="aa()" id=" ">和体</button> 详细地址<input type="" name="" id="btn" value="" /> <script type="text/javascript"> function aa(){ var sval=document.getElementById("s").value; var shival=document.getElementById("shi").value; var xval=document.getElementById("x").value; document.getElementById("btn").value=(sval+shival+xval); } </script> </body>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!