本文已参与「新人创作礼」活动,一起开启掘金创作之路。
六.JavaScript中的函数
6.1什么是函数
函数是完成某个特定功能的一组语句。我们就可以把完成特定功能的代码块放到一个函数里,直接调用这个函数,就省重复输入大量代码的麻烦。
如:我们要完成多组数和的功能。
var sum;
sum = 3+2;
alert(sum);
sum=7+8 ;
alert(sum);
.... //不停重复两行代码
如果要实现8组数的和,就需要16行代码,实现的越多,代码行也就越多。所以我们可以把完成特定功能的代码块放到一个函数里,直接调用这个函数,就省去重复输入大量代码的麻烦。
使用函数完成:
function add2(a,b){
sum = a + b;
alert(sum);
} // 只需写一次就可以
add2(3,2);
add2(7,8);
.... //只需调用函数就可以
6.2定义函数
定义函数基本语法如下:
function 函数名()
{
函数代码;
}
function定义函数的关键字,“函数名”你为函数取的名字,“函数代码”替换为完成特定功能的代码。
说明:
- function定义函数的关键字。
- "函数名"为函数取的名字。
- "函数代码"替换为完成特定功能的代码。
6.3函数调用
函数定义好后,是不能自动执行的,所以需调用它,只需直接在需要的位置写函数就ok了。
第一种情况:在
<script type="text/javascript">
function add2()
{
sum = 1 + 1;
alert(sum);
}
add2();//调用函数,直接写函数名。
</SCRIPT>
第二种情况: 在HTML文件中调用,如通过点击按钮后调用定义好的函数。
<html>
<head>
<script type="text/javascript">
function add2()
{
sum = 5 + 6;
alert(sum);
}
</script>
</head>
<body>
<form>
<input type="button" value="click it" onclick="add2()"> //按钮,onclick点击事件,直接写函数名
</form>
</body>
</html>
代码如下:
6.4有参数的函数
定义函数还可以如下格式:
function 函数名(参数1,参数2)
{
函数代码
}
注意:参数可以多个,根据需要增减参数个数。参数之间用(逗号,)隔开。
按照这个格式,函数实现任意两个数的和应该写成:
function add2(x,y)
{
sum = x + y;
document.write(sum);
}
x和y则是函数的两个参数,调用函数的时候,我们可通过这两个参数把两个实际的加数传递给函数了。
例如,add2(3,4)会求3+4的和,add2(60,20)则会求出60和20的和。
6.5返回值的函数
可以通过"document.write"把结果输出来,如果想对函数的结果进行处理,只要把"document.write(sum)"这行改成如下代码:
function add2(x,y)
{
sum = x + y;
return sum; //返回函数值,return后面的值叫做返回值。
}
还可以通过变量存储调用函数的返回值,代码如下:
result = add2(3,4);//语句执行后,result变量中的值为7。
注意:函数中参数和返回值不只是数字,还可以是字符串等其它类型。
七.JavaScript中的常用互动方法 (消息对话框的呈现)
7.1 输出内容(document.write)
document.write()
可用于直接向 HTML 输出流写内容。简单的说就是直接在(body)网页中输出内容。(个人认为就是类似html中在<body></body>
中写一些内容从而呈现在页面上)
第一种:输出内容用""括起,直接输出""号内的内容。
<script type="text/javascript">
document.write("I love JavaScript!"); //内容用""括起来,""里的内容直接输出。
</script>
第二种:通过变量,输出内容
<script type="text/javascript">
var mystr="hello world!";
document.write(mystr); //直接写变量名,输出变量存储的内容。
</script>
第三种:输出多项内容,内容之间用+号连接。
<script type="text/javascript">
var mystr="hello";
document.write(mystr+"I love JavaScript"); //多项内容之间用+号连接
</script>
第四种:输出HTML标签,并起作用,标签使用""括起来。
<script type="text/javascript">
var mystr="hello";
document.write(mystr+"<br>");//输出hello后,输出一个换行符
document.write("JavaScript");
</script>
而console.log()的作用是向控制台输出一个内容
7.2警告(alert 消息对话框)
我们在访问网站的时候,有时会突然弹出一个小窗口,上面写着一段提示信息文字。
定义alert语法:
alert(字符串或变量);
注: alert弹出消息对话框(包含一个确定按钮)。如果一个script里边有多个alert定义则按顺序弹出消息框。
注意:
- 在点击对话框"确定"按钮前,不能进行任何其它操作。
- 消息对话框通常可以用于调试程序。
- alert输出内容,可以是字符串或变量,与document.write 相似。
7.3确认(confirm 消息对话框)
confirm 消息对话框通常用于允许用户做选择的动作,如:“你对吗?”等。弹出对话框(包括一个确定按钮和一个取消按钮)。
定义confirm语法:
confirm(str);
参数说明:
str:在消息对话框中要显示的文本
返回值: Boolean值
返回值:
当用户点击"确定"按钮时,返回true
当用户点击"取消"按钮时,返回false
注: 通过返回值可以判断用户点击了什么按钮(我觉得就像是c语言中的return)消息对话框是排它的,即用户在点击对话框按钮前,不能进行任何其它操作。
7.4提问(prompt 消息对话框)
prompt弹出消息对话框,通常用于询问一些需要与用户交互的信息。弹出消息对话框(包含一个确定按钮、取消按钮与一个文本输入框)。
定义prompt语法:
prompt(str1, str2);
参数说明:
str1: 要显示在消息对话框中的文本,不可修改
str2:文本框中的内容,可以修改
返回值:
1. 点击确定按钮,文本框中的内容将作为函数返回值
2. 点击取消按钮,将返回null
注:在用户点击对话框的按钮前,不能进行任何其它操作。
7.5打开新窗口(window.open)
open() 方法可以查找一个已经存在或者新建的浏览器窗口。
定义打开新窗口的语法:
window.open([URL], [窗口名称], [参数字符串])
参数说明:
URL:可选参数,在窗口中要显示网页的网址或路径。如果省略这个参数,或者它的值是空字符串,那么窗口就不显示任何文档。
窗口名称:可选参数,被打开窗口的名称。
1.该名称由字母、数字和下划线字符组成。
2."_top"、"_blank"、"_self"具有特殊意义的名称。
_blank:在新窗口显示目标网页
_self:在当前窗口显示目标网页
_top:框架网页中在上部窗口中显示目标网页
3.相同 name 的窗口只能创建一个,要想创建多个窗口则 name 不能相同。
4.name 不能包含有空格。
参数字符串:可选参数,设置窗口参数,各参数用逗号隔开。
参数表:
注意:运行结果考虑浏览器兼容问题。
上例中的慕课网的页面即新打开的窗口标签页
7.6关闭窗口(window.close)
close()关闭窗口
定义关闭窗口的用法:
window.close(); //关闭本窗口
或
<窗口对象>.close(); //关闭指定的窗口
例如:关闭新建的窗口。
<script type="text/javascript">
var mywin=window.open('http://www.imooc.com'); //将新打的窗口对象,存储在变量mywin中
mywin.close();
</script>
注意:上面代码在打开新窗口的同时,关闭该窗口,看不到被打开的窗口。且页面显示:“已阻止弹出窗口”
八.初识DOM
文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法。DOM 将HTML文档呈现为带有元素、属性和文本的树结构(节点树)。
HTML文档可以说由节点构成的集合,三种常见的DOM节点:
1. 元素节点: 上图中、、
等都是元素节点,即标签。
2. 文本节点: 向用户展示的内容,如
3. 属性节点: 元素属性,如标签的链接属性href="www.imooc.com"。
上图的html代码分解为DOM节点层次图为
九.通过ID获取元素
网页由标签将信息组织起来,而标签的id属性值是唯一的,就像是每人有一个身份证号一样,只要通过身份证号就可以找到相对应的人。那么在网页中,我们通过id先找到标签,然后进行操作。
语法:
document.getElementById("id")
结果:null或object HTMLParagraphElement (好像是取决于“”间的是标签还是取的名字)
注:获取的元素是一个对象,如想对元素进行操作,我们要通过它的属性或方法。
十.innerHTML 属性
innerHTML 属性用于获取或替换 HTML 元素的内容。
语法:
Object.innerHTML
注意:
1.Object是获取的元素对象,如通过document.getElementById("ID")获取的元素。
2.注意书写,innerHTML区分大小写。
我们通过id="con"获取
元素,并将元素的内容输出和改变元素内容
十一.js改变html属性
HTML DOM 允许 JavaScript 改变 HTML 元素的样式。
语法:
Object.style.property=new style;
注意: Object是获取的元素对象,如通过document.getElementById("id")获取的元素。
基本属性表(property):
注意: 该表只是一小部分CSS样式属性,其它样式也可以通过该方法设置和修改。
十二.显示和隐藏(display属性)
网页中经常会看到显示和隐藏的效果,可通过display属性来设置。
语法:
Object.style.display = value
注意: Object是获取的元素对象,如通过document.getElementById("id")获取的元素。
value取值:
(下例可通过点击按钮隐藏或显示文本)
十三.控制类名(className 属性)
className 属性设置或返回元素的class 属性。
语法:
object.className = classname
作用:
1.获取元素的class 属性
- 为网页内的某个元素指定一个css样式来更改该元素的外观
(分别点击按钮会出现如下结果)