金山区做网站吗,网站开发语言和数据库有几种,七米网站建设推广优化,网站开发的背景和意义参考#xff1a;
罗大富
JavaScript 教程 | 菜鸟教程
JavaScript 教程 1. JaveScript JavaScript 简称 JS JavaScript 是一种轻量级、解释型、面向对象的脚本语言。它主要被设计用于在网页上实现动态效果#xff0c;增加用户与网页的交互性。作为一种客户端脚本语言#…参考
罗大富
JavaScript 教程 | 菜鸟教程
JavaScript 教程 1. JaveScript JavaScript 简称 JS JavaScript 是一种轻量级、解释型、面向对象的脚本语言。它主要被设计用于在网页上实现动态效果增加用户与网页的交互性。作为一种客户端脚本语言JavaScript 可以直接嵌入 HTML并在浏览器中执行。与 HTML和 CSS 不同JavaScript 使得网页不再是静态的而是可以根据用户的操作动态变化的。
JavaScript 的作用
客户端脚本用于在用户浏览器中执行实现动态效果和用户交互与 HTML和 CSS 协同工作使得网页具有更强的交互性和动态性。网页开发使用 Node.jsJavaScript 也可以在服务器端运行实现服务器端应用的开发后端开发:
1.1 JS的导入方式
JS有常见的三种导入方式1在HEAD标签内导入2在body标签内导入3外联导入需创建一个js格式的文件
这三种方式均需配合script标签一起使用我们这里在scripe标签内使用console的log函数展示这三种方式
!DOCTYPE html
html langen
headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleJS导入方式/titlescriptconsole.log(Hello, HEAD标签的内联样式);/scriptscript src./myscript.js/script
/head
bodyh1JaveScript 的导入方式/h1scriptconsole.log(Hello, body标签的内联样式);alert(你好内联样式弹窗)/script
/body
/html
myscript.js文件内容如下
console.log(Hello, 外联样式);
我们可以在浏览器页面中点击F12进入console查看日志 很明显导入成功。
此外我们可以在script标签内做其他尝试比如我这里使用alert函数弹出一个弹窗显示“你好内联样式弹窗” scriptconsole.log(Hello, body标签的内联样式);alert(你好内联样式弹窗)/script
1.2 JS的基本语法
1.2.1 JS的变量和数据类型
JavaScript 使用 var、let 和 const 来声明变量。
var声明一个变量使用 var 声明的变量会有函数作用域或全局作用域容易导致一些问题现已较少使用。let声明一个块级作用域的变量。const声明一个常量值不可改变。
scriptvar x;let name Alice; // 变量可以重新赋值const age 25; // 常量不可修改console.log(x,name,age);
/script我们可以调用console的log函数查看这些值 scriptvar x;let name Alice; // 变量可以重新赋值const age 25; // 常量不可修改console.log(x,name,age);let y 示例;console.log(y);let empty_value null;console.log(empty_value);/scriptJavaScript 有多种数据类型主要分为两类基本类型原始类型和引用类型。
基本类型Primitive types number数字类型string字符串类型boolean布尔类型true 或 falsenull空值undefined未定义的值symbol唯一标识符ES6 引入bigint大整数ES11 引入引用类型Reference types object对象array数组function函数也是对象
let num 100; // number
let name Alice; // string
let isActive true; // boolean
let person { name: Alice, age: 25 }; // object1.2.2 JS的控制语句
JavaScript 使用 if、else、else if 来进行条件判断。
let age 18;
if (age 18) {console.log(成年人);
} else {console.log(未成年人);
}还可以使用 switch 语句进行多分支判断
let day 3;
switch(day) {case 1:console.log(星期一);break;case 2:console.log(星期二);break;case 3:console.log(星期三);break;default:console.log(未知);
}JavaScript 支持 for、while、do...while 等循环语句。
for 循环
for (let i 0; i 5; i) {console.log(i); // 输出 0 到 4
}while 循环
let i 0;
while (i 5) {console.log(i); // 输出 0 到 4i;
}do...while 循环
let i 0;
do {console.log(i); // 输出 0 到 4i;
} while (i 5);1.2.3 JS的函数
在 JavaScript 中函数可以通过函数声明或函数表达式定义。
函数声明
function greet(name) {console.log(Hello, name);
}
greet(Alice); // 调用函数函数表达式
let greet function(name) {console.log(Hello, name);
};
greet(Bob); // 调用函数箭头函数ES6 引入
let greet (name) {console.log(Hello, name);
};
greet(Charlie);1.2.4 JS的数组与对象
数组用于存储多个值索引从 0 开始。
let fruits [apple, banana, cherry];
console.log(fruits[0]); // 输出 apple对象用于存储具有键值对的数据。
let person {name: Alice,age: 25
};
console.log(person.name); // 输出 Alice1.2.5 JS事件处理
JavaScript 事件处理是指在用户与网页元素交互时浏览器响应并执行相应的 JavaScript 代码的机制。事件处理是前端开发中的一个重要部分涉及到如何让网页响应用户的点击、输入、键盘操作、鼠标移动等行为。
1.2.5.1 事件的基本概念
事件Event是用户与网页交互时产生的动作。每当用户与网页元素进行交互时都会触发一个事件。常见的事件包括
鼠标事件click点击、dblclick双击、mouseover鼠标悬停、mouseout鼠标离开键盘事件keydown按下键盘、keyup松开键盘、keypress按下字符键表单事件submit提交表单、input输入框变化、change元素内容变化窗口事件load页面加载完成、resize窗口大小调整、scroll滚动
1.2.5.2 事件处理的基本方式
a. 内联事件处理
最简单的事件处理方法是直接在 HTML 标签中使用事件属性。例如
button onclickalert(按钮被点击了)点击我/button
这种方法将事件处理程序直接嵌入到 HTML 标签的 onclick 属性中。尽管它使用方便但通常不推荐这种做法因为它将行为与结构混合在一起难以维护。 b. 通过 JavaScript 事件处理程序
通常我们更倾向于使用 JavaScript 来处理事件而不是在 HTML 中内联定义。这样可以将事件的处理逻辑与 HTML 内容分离使代码更加清晰和可维护。
button idmyButton点击我/button
scriptlet button document.getElementById(myButton);button.onclick function() {alert(按钮被点击了);};
/script
这里我们使用 onclick 属性将事件处理程序绑定到按钮元素。当按钮被点击时事件处理程序会被触发并执行。 c. 使用 addEventListener 方法
addEventListener 是现代 JavaScript 中最推荐的事件绑定方法。它允许你向一个元素添加多个事件监听器而不会覆盖已有的事件监听器。使用这种方法可以更加灵活地控制事件的处理方式。
button idmyButton点击我/button
scriptlet button document.getElementById(myButton);// 使用 addEventListener 绑定事件button.addEventListener(click, function() {alert(按钮被点击了);});
/script
d. removeEventListener 方法
如果需要在某些条件下移除已经绑定的事件处理程序可以使用 removeEventListener 方法。此方法与 addEventListener 相对应移除之前通过 addEventListener 绑定的事件监听器。
button idmyButton点击我/button
button idremoveButton移除点击事件/button
scriptlet button document.getElementById(myButton);let removeButton document.getElementById(removeButton);function handleClick() {alert(按钮被点击了);}button.addEventListener(click, handleClick);removeButton.addEventListener(click, function() {button.removeEventListener(click, handleClick);alert(事件已被移除);});
/script
1.2.5.3 事件对象
当事件被触发时浏览器会生成一个事件对象event该对象包含了有关事件的所有信息如触发事件的元素、事件类型、键盘按键等。可以通过事件处理程序访问该对象。
button idmyButton点击我/button
scriptlet button document.getElementById(myButton);button.addEventListener(click, function(event) {console.log(event); // 输出事件对象的详细信息console.log(事件的目标元素:, event.target);console.log(鼠标点击的坐标:, event.clientX, event.clientY);});
/script
常用的事件对象属性
event.target触发事件的元素。event.type事件的类型例如 click、mouseover 等。event.clientX 和 event.clientY鼠标相对于浏览器窗口的坐标。event.key在键盘事件中返回按下的键的名称例如 Enter、A。 1.2.5.4 事件冒泡与事件捕获
JavaScript 中的事件传播机制有两种方式事件冒泡和事件捕获。
事件冒泡事件从目标元素冒泡到父元素。即事件首先在目标元素上触发然后依次向上冒泡到祖先元素直到最顶层的 document。 例如在一个 div 内的 button 上点击时button 的点击事件会先被触发然后事件会冒泡到外部的 div 元素。事件捕获事件从最外层的父元素开始捕获直到目标元素。捕获阶段会先触发父元素的事件处理程序然后才是目标元素的事件处理程序。
可以通过 addEventListener 的第三个参数来控制事件是处于冒泡阶段还是捕获阶段
element.addEventListener(click, function(event) {console.log(捕获阶段);
}, true); // true 表示捕获阶段false 或不传参数表示冒泡阶段
1.2.5.5 事件委托
事件委托是通过在父元素上绑定事件而不是在每个子元素上绑定事件来优化性能的一种技巧。特别是在处理动态生成的元素时事件委托非常有用。
例如假设你有一个列表里面包含了多个按钮传统方法会给每个按钮单独绑定事件。但使用事件委托只需要在父元素上绑定一个事件处理程序即可。
html复制代码ul idlistlibutton按钮 1/button/lilibutton按钮 2/button/lilibutton按钮 3/button/li
/ul
scriptlet list document.getElementById(list);list.addEventListener(click, function(event) {if (event.target.tagName BUTTON) {alert(event.target.textContent); // 显示按钮的文本内容}});
/script
1.3 DOM
在 Web 开发中DOM 通常与 JavaScript 一起使用。
当网页被加载时浏览器会创建页面的文档对象模型也就是DOM(Document Object Model)。每个 HTML 或 XML 文档都可以被视为一个文栏树文档树是整个文档的层次结构表示。文档节点是整个文档树的根节点。DOM 为这个文档树提供了一个编程接口开发者可以使用 JavaScript 来操作这个树状结构。 一个节点树如上图所示。