【中文核刊&普刊投稿通道】2024年体育科技与运动表现分析国际学术会议(ICSTPA 2024)_艾思科蓝_学术一站式服务平台
更多学术会议论文投稿请看:https://ais.cn/u/nuyAF3
目录
一、引言
二、JavaScript 基础
(一)变量与数据类型
(二)运算符
(三)控制结构
三、函数
(一)函数定义与调用
(二)函数作用域
(三)闭包
四、DOM 操作
(一)DOM 简介
(二)获取元素
(三)修改元素属性
(四)添加和删除元素
五、事件处理
(一)事件简介
(二)添加事件处理程序
(三)常见事件类型
一、引言
在当今的互联网世界中,前端开发扮演着至关重要的角色。而 JavaScript 无疑是前端开发领域的核心技术之一。它就像一把神奇的钥匙,打开了创建交互式网页的大门。无论是炫酷的动画效果、动态的数据更新,还是复杂的用户交互逻辑,JavaScript 都能轻松应对。从简单的网页表单验证到构建大型的单页面应用程序(SPA),JavaScript 的应用场景无处不在。在这篇博客中,我们将深入探讨 JavaScript 前端开发的各个方面,带领大家踏上从入门到精通的精彩旅程。
二、JavaScript 基础
(一)变量与数据类型
变量声明在 JavaScript 中,我们可以使用
var
、let
和 const
来声明变量。var
是早期的变量声明方式,它存在变量提升的问题。例如: console.log(a); // 输出 undefinedvar a = 5;
let
和 const
是 ES6 引入的新方式。let
声明的变量不存在变量提升,且不允许在相同作用域内重复声明。const
用于声明常量,一旦赋值就不能再修改。
console.log(b); // 报错:b is not definedlet b = 10;const c = 20;c = 30; // 报错:Assignment to constant variable.
数据类型JavaScript 有多种数据类型,包括基本数据类型和复杂数据类型。基本数据类型有: Number:用于表示数字,包括整数和浮点数。例如:
let num = 42;
或 let floatNum = 3.14;
。String:用于表示文本。可以使用单引号或双引号来创建字符串。例如:let str = 'Hello, JavaScript!';
或 let anotherStr = "This is also a string."
。Boolean:只有两个值 true
和 false
,用于表示逻辑值。例如:let isTrue = true;
。Null:表示一个空值。例如:let emptyValue = null;
。Undefined:当一个变量声明但未赋值时,其值为 undefined
。例如:let undef; console.log(undef); // 输出 undefined
。复杂数据类型主要有:Object:这是 JavaScript 中最复杂的数据类型。对象可以包含多个属性和方法。例如:
let person = { name: 'John', age: 30, sayHello: function() { console.log('Hello!'); }};
Array:用于存储一组有序的值。例如:let fruits = ['apple', 'banana', 'cherry'];
。 (二)运算符
算术运算符JavaScript 中的算术运算符包括加(
+
)、减(-
)、乘(*
)、除(/
)和取模(%
)。需要注意的是,加法运算符在处理字符串时会进行字符串拼接。例如: let num1 = 5;let num2 = 3;console.log(num1 + num2); // 8let str1 = 'Hello, ';let str2 = 'world!';console.log(str1 + str2); // Hello, world!
比较运算符比较运算符用于比较两个值,返回一个布尔值。包括等于(
==
)、不等于(!=
)、全等(===
)、不全等(!==
)、大于(>
)、小于(<
)、大于等于(>=
)和小于等于(<=
)。全等运算符会比较值和数据类型,而等于运算符只比较值。例如: console.log(5 == '5'); // trueconsole.log(5 === '5'); // false
逻辑运算符逻辑运算符包括与(
&&
)、或(||
)和非(!
)。&&
运算符当两个操作数都为真时返回真,||
运算符当至少一个操作数为真时返回真,!
运算符用于取反。例如: let a = true;let b = false;console.log(a && b); // falseconsole.log(a || b); // trueconsole.log(!a); // false
(三)控制结构
条件语句(if - else)if - else
语句用于根据条件执行不同的代码块。例如: let score = 80;if (score >= 90) { console.log('优秀');} else if (score >= 80) { console.log('良好');} else if (score >= 60) { console.log('及格');} else { console.log('不及格');}
循环语句(for、while、do - while) for 循环:常用于已知循环次数的情况。例如: for (let i = 0; i < 5; i++) { console.log(i);}
循环语句(for、while、do - while) for 循环:常用于已知循环次数的情况。例如:
for (let i = 0; i < 5; i++) { console.log(i);}
while 循环:在条件为真时持续执行代码块。例如: let j = 0;while (j < 3) { console.log(j); j++;}
do - while 循环:与 while 循环类似,但会先执行一次代码块再检查条件。例如: let k = 0;do { console.log(k); k++;} while (k < 2);
三、函数
(一)函数定义与调用
函数是 JavaScript 中的重要组成部分,可以将一段可重复使用的代码封装起来。函数可以使用函数声明或函数表达式来定义。
函数声明function add(num1, num2) { return num1 + num2;}console.log(add(3, 5)); // 8
函数表达式 let multiply = function(num1, num2) { return num1 * num2;};console.log(multiply(2, 4)); // 8
函数可以有参数和返回值。参数是函数接收外部传入的值,返回值是函数执行后返回的结果。
(二)函数作用域
JavaScript 中的函数有自己的作用域。在函数内部定义的变量在函数外部是不可访问的,而在函数外部定义的变量在函数内部如果没有同名变量则可以访问。例如:
let globalVar = 10;function testScope() { let localVar = 20; console.log(globalVar); // 10}testScope();console.log(localVar); // 报错:localVar is not defined
(三)闭包
闭包是 JavaScript 中一个比较高级但非常重要的概念。它允许函数访问其定义时所在的词法作用域,即使在函数在其词法作用域之外被执行时。例如:
function outerFunction() { let count = 0; return function() { count++; console.log(count); };}let inner = outerFunction();inner(); // 1inner(); // 2
在这个例子中,inner
函数形成了一个闭包,它可以访问并修改 outerFunction
中定义的 count
变量。
四、DOM 操作
(一)DOM 简介
DOM(Document Object Model)是文档对象模型,它将 HTML 文档表示为一个树形结构。在 JavaScript 中,我们可以通过 DOM API 来操作 HTML 元素,如获取元素、修改元素属性、添加或删除元素等。
(二)获取元素
通过 ID 获取元素可以使用
document.getElementById
方法来获取具有特定 ID 的元素。例如: <!DOCTYPE html><html><body><div id="myDiv">这是一个 div 元素</div><script> let myDiv = document.getElementById('myDiv'); console.log(myDiv.innerHTML); // 这是一个 div 元素</script></body></html>
通过标签名获取元素使用
document.getElementsByTagName
方法可以获取指定标签名的所有元素。例如: <!DOCTYPE html><html><body><p>段落 1</p><p>段落 2</p><script> let paragraphs = document.getElementsByTagName('p'); for (let i = 0; i < paragraphs.length; i++) { console.log(paragraphs[i].innerHTML); }</script></body></html>
通过类名获取元素document.getElementsByClassName
方法用于获取具有特定类名的所有元素。例如: <!DOCTYPE html><html><body><div class="myClass">类名为 myClass 的 div 1</div><div class="myClass">类名为 myClass 的 div 2</div><script> let myClassElements = document.getElementsByClassName('myClass'); for (let i = 0; i < myClassElements.length; i++) { console.log(myClassElements[i].innerHTML); }</script></body></html>
(三)修改元素属性
可以通过 JavaScript 来修改元素的各种属性,如修改元素的样式、内容等。
修改样式可以直接修改元素的
style
属性来改变其样式。例如: <!DOCTYPE html><html><body><div id="myDiv" style="width: 100px; height: 100px; background-color: red;">原始 div</div><script> let myDiv = document.getElementById('myDiv'); myDiv.style.backgroundColor = 'blue'; myDiv.style.width = '200px';</script></body></html>
修改内容可以使用
innerHTML
属性来修改元素的内容。例如: <!DOCTYPE html><html><body><div id="myDiv">原始内容</div><script> let myDiv = document.getElementById('myDiv'); myDiv.innerHTML = '新内容';</script></body></html>
(四)添加和删除元素
添加元素可以使用
document.createElement
创建新元素,然后使用 appendChild
方法将其添加到父元素中。例如: <!DOCTYPE html><html><body><div id="parentDiv"></div><script> let parentDiv = document.getElementById('parentDiv'); let newDiv = document.createElement('div'); newDiv.innerHTML = '新创建的 div'; parentDiv.appendChild(newDiv);</script></body></html>
删除元素可以使用
parentNode.removeChild
方法来删除一个元素。例如: <!DOCTYPE html><html><body><div id="parentDiv"> <div id="childDiv">要删除的 div</div></div><script> let childDiv = document.getElementById('childDiv'); let parentDiv = document.getElementById('parentDiv'); parentDiv.removeChild(childDiv);</script></body></html>
五、事件处理
(一)事件简介
事件是用户与网页交互时产生的动作,如点击、鼠标移动、键盘按键等。JavaScript 可以通过事件处理程序来响应这些事件。
(二)添加事件处理程序
内联方式可以在 HTML 元素的属性中直接添加事件处理程序。例如:
<button onclick="alert('你点击了按钮');">点击我</button>
不过这种方式将 JavaScript 代码与 HTML 代码混合,不利于维护,一般不推荐使用。
2. 脚本方式
可以使用 JavaScript 在脚本中为元素添加事件处理程序。例如:
<!DOCTYPE html><html><body><button id="myButton">点击我</button><script> let myButton = document.getElementById('myButton'); myButton.addEventListener('click', function() { console.log('按钮被点击了'); });</script></body></html>
这里使用了 addEventListener
方法,它可以为元素添加多个相同类型的事件处理程序,并且可以更好地控制事件的传播。
(三)常见事件类型
鼠标事件常见的鼠标事件包括
click
(点击)、mouseover
(鼠标移到元素上)、mouseout
(鼠标移出元素)等。例如: <!DOCTYPE html><html><body><div id="myDiv" style="width: 100px; height: 100px; background-color: red;">鼠标悬停测试</div><script> let myDiv = document.getElementById('myDiv'); myDiv.addEventListener('mouseover', function() { this.style.backgroundColor = 'blue'; }); myDiv.addEventListener('mouseout', function() { this.style.backgroundColor = 'red'; });</script></body></html>
键盘事件键盘事件有
keydown
(键盘按键按下)、keyup
(键盘按键松开)等。例如: <!DOCTYPE html><html><body><input type="text" id="myInput"><script> let myInput = document.getElementById('myInput'); myInput.addEventListener('keydown', function(event) { console.log('按下的键码:', event.keyCode); });</script></body></html>
表单事件对于表单元素,有
submit
(表单提交)、change
(表单元素值改变)等事件。例如: <!DOCTYPE html><html><body><form id="myForm"> <input type="text" id="myInput"> <input type="submit" value="提交"></form><script> let myForm = document.getElementById('myForm'); myForm.addEventListener('submit', function(event) { event.preventDefault(); console.log('表单提交'); }); let myInput = document.getElementById('myInput'); myInput.addEventListener('change', function() { console.log('输入框内容改变'); });</script></body></html>
这里在表单的 submit
事件处理程序中使用了 event.preventDefault
方法来阻止表单的默认提交行为。