当前位置: 首页 > news >正文

JS—组成:2分钟掌握什么是ECMAScript操作,什么是DOM操作,什么是BOM操作

个人博客:haichenyi.com。感谢关注

1. 目录

  • 1–目录
  • 2–组成
  • 3–内置对象

2. 组成

  一直都在说JS,JS,到底啥是JS有了解过吗?JS由哪几部分组成的呢?
定义: JavaScript是一种轻量级、解释型或即时编译型的编程语言,广泛用于Web开发
3部分组成: ECMAScriptDOMBOM

ECMAScript:

ECMAScript(简称ES)是由ECMA国际标准化组织制定的一个脚本语言标准,它是JavaScript的核心。它定义了JavaScript语言的基本语法、数据类型、操作符、控制语句、函数、对象等核心概念,以及模块系统、异步编程、异常处理等高级特性。举几个简单的例子

//1.变量声明与赋值
// 使用var声明变量
var name = "John";
console.log(name); // 输出: John
// 使用let声明变量
let age = 30;
console.log(age); // 输出: 30
// 使用const声明常量
const pi = 3.14;
console.log(pi); // 输出: 3.14//2.函数定义与调用
// 使用function关键字定义函数
function add(a, b) {return a + b;
}
console.log(add(2, 3)); // 输出: 5
// 使用函数表达式定义函数
const subtract = function(a, b) {return a - b;
};
console.log(subtract(5, 3)); // 输出: 2
// 使用箭头函数定义函数
const multiply = (a, b) => a * b;
console.log(multiply(4, 5)); // 输出: 20//3.模板字符串
let name = "Alice";
let greeting = `Hello, ${name}!`;
console.log(greeting); // 输出: Hello, Alice!//4.类与对象
class Person {constructor(name, age) {this.name = name;this.age = age;}greet() {console.log(`Hello, my name is ${this.name}`);}
}
let person1 = new Person("Bob", 25);
person1.greet(); // 输出: Hello, my name is Bob//5.模块
// module.js
export const name = "John";
export function greet() {console.log("Hello, " + name);
}
// main.js
import { name, greet } from './module.js';
console.log(name); // 输出: John
greet(); // 输出: Hello, John//6.解构赋值
// 数组解构
let [a, b] = [1, 2];
console.log(a); // 输出: 1
console.log(b); // 输出: 2
// 对象解构
let { name, age } = { name: "Alice", age: 30 };
console.log(name); // 输出: Alice
console.log(age); // 输出: 30/7./数组操作
// 创建数组
let arr = [1, 2, 3, 4, 5];
// 访问数组元素
console.log(arr[0]); // 输出: 1

DOM(Document Object Model,文档对象模型)

允许脚本动态地访问和更新文档的内容、结构和样式。以下是一些DOM操作的例子:

//1.选择元素:
var element = document.getElementById('myElement'); // 根据ID选择元素
var elements = document.getElementsByClassName('myClass'); // 根据类名选择元素集合
var paragraphs = document.getElementsByTagName('p'); // 根据标签名选择元素集合//2.访问和修改元素内容:
var divContent = document.getElementById('myDiv').innerHTML; // 获取元素的HTML内容
document.getElementById('myDiv').innerHTML = '<p>New Content</p>'; // 设置元素的HTML内容
var text = document.getElementById('myParagraph').textContent; // 获取元素的文本内容
document.getElementById('myParagraph').textContent = 'New Text'; // 设置元素的文本内容//3.修改元素样式:
var element = document.getElementById('myDiv');
element.style.color = 'red'; // 修改文本颜色
element.style.backgroundColor = 'yellow'; // 修改背景颜色
element.style.fontSize = '20px'; // 修改字体大小//4.创建和插入元素:
var newDiv = document.createElement('div'); // 创建新的元素节点
newDiv.textContent = 'This is a new div';
document.body.appendChild(newDiv); // 将新元素添加到页面的末尾
var newText = document.createTextNode('Hello, this is a text node'); // 创建新的文本节点
document.body.appendChild(newText); // 将文本节点添加到页面//5.删除元素:
var parentElement = document.getElementById('parentDiv');
var childElement = document.getElementById('childDiv');
parentElement.removeChild(childElement); // 删除指定的子元素
var element = document.getElementById('myDiv');
element.remove(); // 直接删除元素本身//6.事件处理:
var button = document.getElementById('myButton');
button.addEventListener('click', function() {alert('Button clicked!');
}); // 为元素添加事件监听器
button.removeEventListener('click', handleClick); // 为元素移除事件监听器(假设handleClick是之前添加的事件处理函数)

BOM(Browser Object Model,浏览器对象模型)

  提供了与浏览器窗口进行交互的方法和属性。只要是跟窗口相关的操作,都属于BOM操作。比方说window调用的一些方法,窗口的全屏与非全屏等等。以下是一些BOM操作的例子:

//1.打开新窗口:
window.open('https://www.example.com');//2.关闭当前窗口:
window.close();//3.设置当前窗口大小:
window.resizeTo(800, 600);//4.设置当前窗口大小:
var currentUrl = window.location.href; // 获取当前URL
window.location.href = 'https://www.example.com'; // 设置新的URL//5.获取和设置当前URL:
var currentUrl = window.location.href; // 获取当前URL
window.location.href = 'https://www.example.com'; // 设置新的URL//6.前进和后退浏览器历史记录:
history.forward(); // 前进到下一个历史记录
history.back(); // 后退到上一个历史记录//7.全屏API:
document.documentElement.requestFullscreen(); // 进入全屏状态
document.exitFullscreen(); // 退出全屏状态

PS:整篇文章,精炼一下,如下
JS是一种轻量级、解释型或即时编译型的编程语言,广泛用于Web开发。
由三部分组成:ECMAScript,DOM,BOM
ECMAScript:js的核心,变量的定义,方法的调用等等。
DOM操作:跟element相关的一些方法。如获取元素,修改元素样式,修改元素内容,删减元素之类的。
BOM操作:跟窗口相关的,如window的一些方法open之类的

相关文章:

JS—组成:2分钟掌握什么是ECMAScript操作,什么是DOM操作,什么是BOM操作

个人博客&#xff1a;haichenyi.com。感谢关注 1. 目录 1–目录2–组成3–内置对象 2. 组成 一直都在说JS&#xff0c;JS&#xff0c;到底啥是JS有了解过吗&#xff1f;JS由哪几部分组成的呢&#xff1f; 定义&#xff1a; JavaScript是一种轻量级、解释型或即时编译型的编程语…...

ArcGIS操作:10 投影坐标系转地理坐标系

应用情景&#xff1a;在计算shp面质心坐标的时&#xff0c;由于需要的坐标是经纬度&#xff0c;所以需要将投影坐标系转化为地理坐标系 1、打开工具箱 2、右侧&#xff1a;数据管理工具 → 投影和变换 → 要素 → 投影 3、选择投影的数据、输出路径、地理坐标系&#xff0c;点…...

NVIDIA Jetson Nano的国产替代,基于算能BM1684X+FPGA+AI算力盒子,支持deepseek边缘部署

NVIDIA Jetson Nano的国产替代&#xff0c;基于算能BM1684X的AI算力盒子&#xff0c;支持deepseek边缘部署 另外&#xff0c;还提供BM1684XFPGAAI的解决方案。 核心板基于Sophon SG2300X SoC&#xff08;也叫BM1684X&#xff09;打造 带有8核ARM Cortex-A53 2.3GHz&#xff0c…...

c++全排列

题目描述 按照字典序输出自然数 1 到 n 所有不重复的排列&#xff0c;即 n 的全排列&#xff0c;要求所产生的任一数字序列中不允许出现重复的数字。 输入格式 一个整数 n。 输出格式 由 1∼n 组成的所有不重复的数字序列&#xff0c;每行一个序列。 每个数字保留 5 个场…...

VSCode 配置优化指南:打造极致高效的前端开发环境

VSCode 配置优化指南&#xff1a;打造极致高效的前端开发环境 一、基础环境配置&#xff1a;让开发更流畅 1. 性能优化设置 // settings.json {"files.autoSave": "afterDelay", // 自动保存&#xff08;延迟1秒&#xff09;"files.exclud…...

利用 ArcGIS Pro 快速统计省域各市道路长度的实操指南

在地理信息分析与处理的工作中&#xff0c;ArcGIS Pro 是一款功能强大的 GIS 软件&#xff0c;它能够帮助我们高效地完成各种复杂的空间数据分析任务。 现在&#xff0c;就让我们一起深入学习如何借助 ArcGIS Pro 来统计省下面各市的道路长度&#xff0c;这一技能在城市规划、…...

CTF 中的 XSS 攻击:原理、技巧与实战案例

跨站脚本攻击&#xff08;Cross-Site Scripting&#xff0c;简称 XSS&#xff09;是一种常见的 Web 漏洞&#xff0c;利用该漏洞&#xff0c;攻击者可以在受害者浏览器中注入并执行恶意脚本。在 CTF&#xff08;Capture The Flag&#xff09;竞赛中&#xff0c;XSS 攻击不仅是一…...

LeetCode hot 100—二叉树的最大深度

题目 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3示例 2&#xff1a; 输入&#xff1a;root [1,n…...

.h264/.h265文件 前端直接播放

由于接收摄像头 告警视频&#xff0c;需要前端直接播放&#xff0c;不想后端转码后传输。 摄像头 判断到告警后往服务器上报 .h264 /.h265 视频文件。 解决方式&#xff1a;html5直接采用 ffmpeg 进行转码 &#xff0c;然后塞入 video标签&#xff0c;进行播放 目前改动ffmp…...

【单片机通信技术】串口通信的几种方式与比较,详细解释SPI通信

一、介绍 串口通信是一种通过串行接口逐位传输数据的通信方式&#xff0c;广泛应用于嵌入式系统、工业控制、传感器网络等领域。 二、以下是几种常见的串口通信方式及其对比&#xff1a; 1.UART&#xff08;Universal Asynchronous Receiver/Transmitter&#xff09; 特点&am…...

PDF转JPG(并去除多余的白边)

首先&#xff0c;手动下载一个软件&#xff08;poppler for Windows&#xff09;&#xff0c;下载地址&#xff1a;https://github.com/oschwartz10612/poppler-windows/releases/tag/v24.08.0-0 否则会出现以下错误&#xff1a; PDFInfoNotInstalledError: Unable to get pag…...

题目 3217 ⭐成绩统计⭐【滑动窗口 + 二分搜索】蓝桥杯2024年第十五届省赛

小蓝的班上有 n n n 个人&#xff0c;一次考试之后小蓝想统计同学们的成绩&#xff0c;第 i 名同学的成绩为 a i a_i ai​ 。当小蓝统计完前 x x x 名同学的成绩后&#xff0c;他可以从 1 ∼ x 1 ∼ x 1∼x 中选出任意 k k k 名同学的成绩&#xff0c;计算出这 k k k 个成…...

URL中的特殊字符与web安全

在现代Web应用中&#xff0c;URL作为客户端与服务器之间的通信桥梁&#xff0c;承载着大量的重要信息。URL中的特殊字符&#xff0c;看似只是一些常见的符号&#xff0c;但在Web安全领域&#xff0c;它们与其他安全知识密切相关&#xff0c;如在Base64编码、SQL注入&#xff0c…...

八卡5090服务器首发亮相!

AI 人工智能领域热度居高不下。OpenAI 的 GPT - 4 凭强悍语言处理能力&#xff0c;在内容创作、智能客服等领域广泛应用。清华大学团队的 DeepSeek 大模型在深度学习训练优势突出&#xff0c;正促使各行业应用端算力需求向推理主导转变&#xff0c;呈爆发式增长 。 随着 DeepS…...

esp32驱动带字库芯片TFT屏幕

前言 学习esp32单片机开发&#xff0c;前段时间在网上买了一块2.0寸TFT屏幕。 长这个样子&#xff0c;这个屏幕带汉字字库的硬件模块。我仔细看了一下这个字库模块上面写的字是25Q32FVSIG 1336 文档 卖家也发来了开发文档&#xff0c;是个doc文档&#xff0c;张这个样子。 开…...

为AI聊天工具添加一个知识系统 之138 设计重审 之2 文章学 引言之2 附加符号学附属诠释学附随工程学(联系)

本文要点 要点 符号学大局观&#xff1a; 诠释学&#xff08;当代 加成[0]&#xff1a;“预期”和“预设” 两者的 不期而遇 。“邂逅”&#xff09; 我们在文章学工具设计中 以全局观考虑&#xff1a;嵌入编程工具的逻辑性底&#xff08; 哲学诠释 下确界&#xff09; 并…...

java环境部署

java环境部署 一、准备工作 jrejdkeclipse jdk下载&#xff1a;21和1.8-----官网&#xff1a;Oracle&#xff1a;Java 下载 |神谕 该处选择要依据自身的系统类型选择下载 idea的下载安装&#xff1a;IntelliJ IDEA | Other Versions 二、安装 三、环境配置 四、使用 五、i…...

正点原子[第三期]Arm(iMX6U)Linux移植学习笔记-2.1 uboot简介

前言&#xff1a; 本文是根据哔哩哔哩网站上“Arm(iMX6U)Linux系统移植和根文件系统构键篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。 引用&#xff1a; …...

CentOS 7.9 安装 ClickHouse 文档

1. 环境准备 确保系统为 CentOS 7.9&#xff0c;并已安装 Docker。如果未安装 Docker&#xff0c;请先安装 Docker。 安装 Docker # 卸载旧版本 Docker&#xff08;如果有&#xff09; sudo yum remove -y docker docker-client docker-client-latest docker-common docker-…...

高考數學。。。

2024上 具体来说&#xff0c;直线的参数方程可以写为&#xff1a; x1t y−t z1t 二、简答题(本大题共5小题&#xff0c;每小题7分&#xff0c;共35分。) 12.数学学习评价不仅要关注结果评价&#xff0c;也要关注过程评价。简要说明过程评价应关注哪几个方面。…...

使用GitLink个人建站服务部署Allure在线测试报告

更多技术文章&#xff0c;访问软件测试社区 文章目录 &#x1f680;前言&#x1f511;开通GitLink个人建站服务1. 前提条件2. 登录GitLink平台&#xff08;https://www.gitlink.org.cn/login&#xff09;3. 进入设置>个人建站>我的站点4. 新建站点5. 去仓部进行部署6. 安…...

Linux 上离线安装 python3

在Linux系统上进行离线安装 Python3&#xff0c;通常是因为目标机器没有网络连接。以下是一个通用的步骤指南&#xff0c;帮助你在这种情况下成功安装Python 3&#xff1a; 下载安装包 选择一台有网络连接的机器&#xff1a;这台机器的操作系统应该尽可能与目标机器相同或相似…...

js操作字符串的常用方法

1. 查找和截取​​​​​​​ 1.1 indexOf 作用&#xff1a;查找子字符串在字符串中首次出现的位置。 是否改变原字符串&#xff1a;不会改变原字符串。 返回值&#xff1a;如果找到子字符串&#xff0c;返回其起始索引&#xff08;从 0 开始&#xff09;&#xff1b;如果未…...

自动化学习-使用git进行版本管理

目录 一、为什么要学习git 二、git是什么 三、git如何使用 1、git的下载安装和配置 2、git常用的命令 3、gitee远程仓库的使用 &#xff08;1&#xff09;注册 &#xff08;2&#xff09;创建仓库 &#xff08;3&#xff09;配置公钥&#xff08;建立电脑和git…...

GCC RISCV 后端 -- GCC Passes 注释

在前面文章提到&#xff0c;当GCC 前端完成对C源代码解析完成后&#xff0c;就会使用 处理过程&#xff08;Passes&#xff09;机制&#xff0c;通过一系列的处理过程&#xff0c;将 GENERIC IR 表示的C程序 转步转换成 目标机器的汇编语言。过程描述如下图所示&#xff1a; 此…...

Ollama存在安全风险的情况通报及解决方案

据清华大学网络空间测绘联合研究中心分析&#xff0c;开源跨平台大模型工具Ollama默认配置存在未授权访问与模型窃取等安全隐患。鉴于目前DeepSeek等大模型的研究部署和应用非常广泛&#xff0c;多数用户使用Ollama私有化部署且未修改默认配置&#xff0c;存在数据泄露、算力盗…...

IDEA Generate POJOs.groovy 踩坑小计 | 生成实体 |groovy报错

一、无法生成注释或生成的注释是null 问题可能的原因&#xff1a; 1.没有从表里提取注释信息&#xff0c;修改def calcFields(table)方法即可 def calcFields(table) {DasUtil.getColumns(table).reduce([]) { fields, col ->def spec Case.LOWER.apply(col.getDataType().…...

阿里云云监控资源告警常用模板

阿里云云监控资源告警常用模板 {"HostAvailabilityTemplate": [],"Description": "","SystemEventTemplates": [],"AlertTemplatesJson": {"kvstore_standard": [{"displayName": "Connection usa…...

Tailwind CSS 问题:npm error could not determine executable to run

问题与处理策略 问题描述 npx tailwindcss init -p在使用 Tailwind CSS 的前端项目中&#xff0c;执行上述指令&#xff0c;即初始化 Tailwind CSS 时&#xff0c;报如下错误 npm error could not determine executable to run# 报错npm 错误无法确定要运行的可执行文件问题…...

vue基本功

watchEffect和watch watchEffect默认 immdiate 是 true,而且自动收集依赖 watch需要手动写依赖,immdiate 默认是 false toRef和toRefs toRef: 复制 reactive 里的单个属性并转成 ref toRefs: 复制 reactive 里的所有属性并转成 ref vue3中使用vuex import { useStore } f…...