JavaScript 编程基础(二)

这篇博客介绍了JavaScript的基础知识,包括函数的定义、调用和作用域,Array数组的创建、遍历和常用属性,以及DOM节点树和节点访问的相关概念。通过示例详细讲解了如何操作函数和数组,帮助初学者理解JavaScript编程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScript 编程基础

一、函数

JavaScript 中提供了函数,函数可以将程序中繁琐的代码模块化,提高程序的可读性,并且便于后期的维护。

(1)函数的定义

为了使代码更为简洁并可以重复使用,通常将某段实现特定功能对的代码定义成一个函数。所谓函数,就是在程序中多条语句组成的逻辑单元。
在 JavaScript 中,函数使用关键字 function 来定义,其语法格式如下:

<script type="text/javascript">
	function 函数名 ([参数1,参数2,......]){
		函数体
	}
</script>
  • function:在声明函数时,必须使用的关键男子。
  • 函数名:创建函数的名称,函数名唯一。
  • 参数: 外界传递给函数的值,可选,当有多个参数时,各参数之间用“,”隔开。
  • 函数体:函数定义的主体,用于实现特定的功能。

(2)函数的调用

函数定义后不会自动执行,而是需要在特定的位置调用函数。函数调用很简单,只许引入函数名,并传入相应的参数即可。语法格式如下:

	函数名称 ([参数1,参数2,......])

例:下面定义一个带有参数的函数 show(text) ,在页面中输出“Hello World”.

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>调用函数</title>
		<script type="text/javascript">
			//定义一个含有形参text的函数
			function show(text){
				document.write(text);	
			}
		</script>
	</head>
	<body>
		<script type="text/javascript">
			//调用函数show(),给出实参“Hello World”
			show("Hello World");
		</script>
	</body>
</html>

首先 执行函数 show() 的函数体,然后,JavaScript 在其执行函数体之前会把实参值“Hello World”传递给形参 text。

(3)函数中变量的作用域

函数中的变量需要先定义后使用,但并不意味着定义变量后就可以随意使用。变量需要在它的作用范围内才可以被使用,这个作用范围称为变量的作用域。
变量的作用域取决于这个变量是哪一种变量,在 JavaScript 中,变量一般分为全局变量和局部变量。

  • 全局变量: 定义在所有函数之外,作用于整个程序的变量。
  • 局部变量: 定义在函数体之内,作用于函数体的变量。

二、Array 数组

与其他计算机语言一样,JavaScript 也是通过数组来保存具有相同类型的数据。

(1)创建数组

在 JavaScript 中,使用内置对象类 Array 可以创建数组对象,其语法格式如下:

var arrayname= new Array();		//新建一个长度为0的数组
var arrayname=new Array(n);		//新建一个指定长度为n的数组

//新建一个指定长度的数组,并赋值
var arrayname= new Array(元素1,元素2,元素3,......);	

var arraryname=[元素1,元素2,元素3,......];	

一个数组元素由数组名、一对方括号**[ ]** 和括号中的下标组合而成,不同的数组元素可以通过下标进行区别。
例如,创建一个长度为 Y 的数组对象 year ,对于这个 year 数组对象,它包含数组元素year[0]、year[1]、year[2]、…、year[Y-1]。

(2)使用 for…in 语句

JavaScript 的 for…in 语句是一种特殊的 for 语句,专门用于处理与数组和对象相关的循环操作。for…,in 语句可以依次对数组中的每个元素执行一条或多条语句。其语法格式如下:

		for (变量 in 对象){
			//此处为JavaScript代码
		}

(3)数组的常用属性和方法

属性/方法说明
length返回数组中数组元素的个数,即数组长度
toString返回一个字符串,该字符串包含数组中所有元素,各个元素之间用逗号隔开

数组的 length属性是数组最常用的属性,另外,由于数组索引值是从0开始的,因此 length 属性值比数组中的最大索引值大 1。

(4)二维数组

对于复杂的业务逻辑,有时简单的一维数组不能够满足需求,需要使用二维数组。当数组中所有的元素也是数组时,就形成了二维数组。
例如,要保存一个班级所有人的姓名、年龄、性别等数据。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>二维数组</title>
	</head>
	<body>
		<script typr="text/javascript">
			var students,i,j;
			students = new Array();
			studetns[0]=new Array("张三","18岁","男");
			students[1]=new Array("李四","17岁","男");
			students[2]=new Array("王五","18岁","女");
			for(i in students[i]){
				for(j in students[i]){
					document.write(students[i][j]+"\t");
				}
				document,write.("<br />");
			}
	</body>
</html>

三、DOM 节点树

DOM(Document Object Model)称为文档对象模型,是一个表示和处理文档的应用程序接口(API),可用于动态访问、更新文档的内容、结构和样式。DOM将网页中文档对象的关系规划为节点层级,构成他们之间的等级关系,这种各对象间的层次结构被称为节点树。

DOM 节点树

html
head
title
titke文本
body
h1
h1文本
ul
li
li文本
li
li文本

如上图展示了DOM文档的树形结构,其中“html、head、body”都表示节点,一个文档的树形结构就是由各种不同的节点组成的。文档对象节点树有以下特点。

  • 每个节点树有一个根节点。
  • 除了根节点,每个节点都有一个父节点。
  • 每个节点都可以有许多子节点。
  • 具有相同父节点的节点叫“兄弟节点”。

四、节点的访问

在 DOM 中,每个节点都是一个对象,因此每个节点对象都有一系列的属性、方法。JavaScript 中可使用节点的属性和方法访问指定元素,来得到文档中的对象。

(1)访问指定元素

访问指定节点的常用方法。

方法说明
getElementById()获取拥有指定id的第一个元素引用对象
getElementByName()获取带有指定名称的元素对象集合
getElementByTagName()获取带有指定标签名的元素对象集合
getElementByClassName()获取指定class的元素对象集合(不支持IE6~8浏览器)

(2)访问相关元素

节点对象的常用属性

属性说明
parentNode元素节点的父节点
childNode元素节点的子节点数组
firstChild第一个子节点
lastChild最后一个子节点
previousSibling前一个兄弟节点
nextSibling下一个兄弟节点

*需要注意的是,document 对象是所有 DOM 对象的的访问入口,进行节点访问的时候需要首先从 document 对象开始。

五、元素对象常用操作

类型方法说明
创建节点createElement()创建元素节点
createTextNode创建文本节点
节点操作appendChild()为当前节点增加一个子节点(作为最后一个节点)
insertBedore()为当前节点增加一个子节点(插入到指定子节点之前)
removeChild()删除当前节点的某个子节点

使用Demo

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>节点的创建和追加操作</title>
	</head>
	<script type="text/javascript">
		function init(){
			//创建一个<h1>节点
			var h1 = document.createElement("h1");	
			//创建一个文本节点
			var text = document.createTextNode("Hello World!");
			//为<h1>追加文本节点
			h1.appendChild(text);
			//为<body>追加<h1>元素
			document.body.appendChild(h1);
		}
	</script>
	<body onload="init()">
	</body>
</html>

运行Demo结果
Demo运行结果

六、元素属性与操作

元素对象除了节点操作,还具有一些属性和内容的操作。

类型属性/方法说明
元素内容inneHTML获取或设置元素的HTML内容
样式属性classnName获取或设置元素的class属性
style获取或设置元素的style样式属性
位置属性offsetWidth、offsetHeight获取或设置元素的宽和高(不含滚动条)
scrollEidth、scrollHeight获取或设置元素的完整的宽和高(含滚动条)
offsetTop、offsetLeft获取或设置包含滚动条,距离上或左边滚动过的距离
scrollTop、scrollLeft获取或设置元素在网页中的坐标
属性操作getAttribute()获得元素指定属性值
getAttribute()为元素设置新到的属性
removeAttribute()为元素删除指定的属性

七、元素的样式操作

在操作元素属性时,style 属性可以修改元素的样式,className 属性可以修改元素的雷鸣,通过这两种方法即可完成元素的样式操作。

(1)style 属性

var test = document,getElementById("test");	//获得需要操作的对象
test.style.width="200px";	//设置样式,相当于: #test{width:200px;}
test.style.height="100px";	//相当于:#test{height:100px;}
test.style.backgroundColor = "#ff0000":	//相当于: #test{background-color:#ff0000;}
var testWidth=test.style.width;	//获得width样式

在CSS属性中带有“-”的样式(如background-color),在style 操作中需要用“驼峰式”(如backgroundColor),即在第二个及后续单词的首字母大写。

(2)className 属性

元素对象的className 属性用于切换元素的类名或为元素追加类名。

var test = document.getElementById("test");	//获得元素对象<div id="test">
test.className = "aa";	//添加样式,执行:<div id="tesst" class="aa">
test.className +="bb"'	//追加样式,执行: <div id="test" class="aa bb">
test.className = test.className.replace("bb","cc");
//替换样式,执行:<div id="test" class="aa cc">
tes.className = test.className.replace("cc","");
//删除cc,执行:<div id="test" class="aa">
test.className="";		//删除所有的样式
Authors
杜小白

文章内容借鉴于《HTML+CSS+JavaScript 网页制作案例教程》 编著:传智播客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值