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

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是一种轻量级、解释型或即时编译型的编程语…...

Oracle数据库监听学习

官方文档&#xff1a; Net Services Administrators Guide Net Services Reference 一、动态注册 1.实例启动后&#xff0c;LREG 进程每分钟自动将服务名&#xff08;service_name&#xff09;注册到监听器中 也可以通过 alter system register 命令实现立刻注册。&#x…...

Vue Hooks 深度解析:从原理到实践

Vue Hooks 深度解析&#xff1a;从原理到实践 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff01;点我试试&#xff01;&#xff01; 文章目录 Vue Hooks 深度解析&#xff1a;从原理到实践一、背景…...

5c/c++内存管理

1. C/C内存分布 int globalVar 1; static int staticGlobalVar 1; void Test() {static int staticVar 1;int localVar 1;int num1[10] { 1, 2, 3, 4 };char char2[] "abcd";const char* pChar3 "abcd";int* ptr1 (int*)malloc(sizeof(int) * 4);i…...

Android14 OTA差分包升级报Package is for source build

制作好差分包&#xff0c;使用adb线刷模式验证ota升级&#xff0c;出现E:Package is for source build错误 使用adb方式验证 进入recovery模式 adb reboot recovery稍等一会界面会提示 Now send the package you want to apply to the device with "adb sidelaod <…...

C++中的无锁编程

引言 在当今多核处理器普及的时代&#xff0c;并发编程已成为高性能应用程序开发的关键技术。传统的基于锁的同步机制虽然使用简单&#xff0c;但往往会带来性能瓶颈和死锁风险。无锁编程&#xff08;Lock-Free Programming&#xff09;作为一种先进的并发编程范式&#xff0c…...

7. 机器人记录数据集(具身智能机器人套件)

1. 树莓派启动机器人 conda activate lerobotpython lerobot/scripts/control_robot.py \--robot.typelekiwi \--control.typeremote_robot2. huggingface平台配置 huggingface官网 注册登录申请token&#xff08;要有写权限&#xff09;安装客户端 # 安装 pip install -U …...

设计模式 + java8方法引用 实现任意表的过滤器

会用到下面2个依赖&#xff0c;原因是在今天的案例中&#xff0c;我想在我代码中使用上Entity::getFieldName 这种形式 LambdaQueryWrapper<ApplicationDashboard> queryWrapper new LambdaQueryWrapper<>(); queryWrapper.eq(ApplicationDashboard::getAppCode,…...

分布式锁—5.Redisson的读写锁二

大纲 1.Redisson读写锁RedissonReadWriteLock概述 2.读锁RedissonReadLock的获取读锁逻辑 3.写锁RedissonWriteLock的获取写锁逻辑 4.读锁RedissonReadLock的读读不互斥逻辑 5.RedissonReadLock和RedissonWriteLock的读写互斥逻辑 6.写锁RedissonWriteLock的写写互斥逻辑…...

【C++设计模式】第七篇:桥接模式(Bridge)

注意&#xff1a;复现代码时&#xff0c;确保 VS2022 使用 C17/20 标准以支持现代特性。 抽象与实现的解耦之道 1. 模式定义与用途​​ 核心思想​ ​桥接模式&#xff1a;将抽象部分与实现部分分离&#xff0c;使二者可以独立变化。​关键用途&#xff1a; ​1.拆分复杂继承…...

Html常用代码

Html常用代码 文章目录 Html常用代码1-常用的Html代码1-Html模板 2-快速部署Live-Server1-Windows系统步骤 1&#xff1a;安装 Node.js步骤 2&#xff1a;安装 live - server步骤 3&#xff1a;使用 live - server 运行本地项目 2-Mac系统步骤 1&#xff1a;安装 Node.js步骤 2…...

c++中的一些控制符

控制符在<iomanip>头文件里 一、设置显示小数精度 &#xff1a;setprecision() float A3.1234&#xff1b; 默认有效位为6位&#xff0c;steprecision(3)→设置有效位为3位 【3.12】 可以与fixed搭配用&#xff0c;cout<<fixed<<setprecision(3)<&l…...

Go语言里面的堆跟栈 + new 和 make + 内存逃逸 + 闭包

在 Go 语言中&#xff0c;堆&#xff08;Heap&#xff09;和栈&#xff08;Stack&#xff09;是内存管理中的两个重要概念&#xff0c;它们在内存分配、数据存储和使用场景等方面存在明显差异。 栈&#xff08;Stack&#xff09; 栈是一种具有后进先出&#xff08;LIFO&#…...

蓝桥备赛(11)- 数据结构、算法与STL

一、数据结构 1.1 什么是数据结构&#xff1f; 在计算机科学中&#xff0c;数据结构是一种 数据组织、管理和存储的格式。它是相互之间存在一种 或多种特定关系的数据元素的集合。 ---> 通俗点&#xff0c;数据结构就是数据的组织形式 &#xff0c; 研究数据是用什么方…...

react 19版中路由react-router-dom v7版的使用

路由的安装&#xff1a; npm install react-router-dom在src目录下建一个router文件夹 在router文件夹里面建一个index.tsx index.tsx内容&#xff1a; import React from react; import {BrowserRouter as Router,Routes,Route,Link } from react-router-dom; import ManuLi…...

WPS工具栏添加Mathtype加载项

问题描述&#xff1a; 分别安装好WPS和MathType之后&#xff0c;WPS工具栏没直接显示MathType工具&#xff0c;或者是前期使用正常&#xff0c;由于WPS更新之后MathType工具消失&#xff0c;如下图 解决办法 将文件“MathType Commands 2016.dotm”和“MathPage.wll”从Matht…...

Tauri+React+Ant Design跨平台开发环境搭建指南

TauriReactAnt Design跨平台开发环境搭建指南 一、环境配置与工具链搭建 1.1 基础环境准备 必备组件&#xff1a; Rust工具链&#xff08;v1.77&#xff09;&#xff1a; curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh Node.js LTS&#xff08;v20.11.1&a…...

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…...

std::string的模拟实现

目录 string的构造函数 无参数的构造函数 根据字符串初始化 用n个ch字符初始化 用一个字符串的前n个初始化 拷贝构造 用另一个string对象的pos位置向后len的长度初始化 [ ]解引用重载 迭代器的实现 非const版本 const版本 扩容reserve和resize reserve resize p…...

wordpress自定the_category的输出结构

通过WordPress的过滤器the_category来自定义输出内容。方法很简单&#xff0c;但是很实用。以下是一个示例代码&#xff1a; function custom_the_category($thelist, $separator , $parents ) {// 获取当前文章的所有分类$categories get_the_category();if (empty($categ…...

doris: Oracle

Apache Doris JDBC Catalog 支持通过标准 JDBC 接口连接 Oracle 数据库。本文档介绍如何配置 Oracle 数据库连接。 使用须知​ 要连接到 Oracle 数据库&#xff0c;您需要 Oracle 19c, 18c, 12c, 11g 或 10g。 Oracle 数据库的 JDBC 驱动程序&#xff0c;您可以从 Maven 仓库…...

mysql中什么机制保证宕机数据恢复

MySQL 通过多种机制来保证在宕机或意外崩溃时数据的完整性和可恢复性。这些机制主要包括 事务日志、崩溃恢复 和 数据持久化 等。以下是 MySQL 中保证数据恢复的核心机制: 1. 事务日志(Transaction Log) 事务日志是 MySQL 实现数据恢复的核心机制之一,主要包括 Redo Log(…...

前端面试技术性场景题

87.场景面试之大数运算&#xff1a;超过js中number最大值的数怎么处理 在 JavaScript 中&#xff0c;Number.MAX_SAFE_INTEGER&#xff08;即 2^53 - 1&#xff0c;即 9007199254740991&#xff09;是能被安全表示的最大整数。超过此值时&#xff0c;普通的 Number 类型会出现…...

解决CentOS 8.5被恶意扫描的问题

CentOS 8 官方仓库已停止维护(EOL),导致一些常用依赖包如fail2ban 无法正常安装。 完整解决方案: 一、问题根源 CentOS 8 官方仓库已停更:2021 年底 CentOS 8 停止维护,默认仓库的包可能无法满足依赖关系。EPEL 仓库兼容性:EPEL 仓库可能未适配 CentOS 8.5 的旧版本依赖…...

探秘基带算法:从原理到5G时代的通信变革【四】Polar 编解码(二)

文章目录 2.3.3 极化编码巴氏参数与信道可靠性比特混合生成矩阵编码举例 2.3.4 极化译码最小单元译码串行抵消译码&#xff08;SC译码&#xff09;算法SCL译码算法 2.3.5 总结**Polar 码的优势****Polar 码的主要问题****Polar 码的应用前景** 2.3.6 **参考文档** 本博客为系列…...

机器学习准备工作

机器学习准备工作 机器学习概述常见算法动手实践 深度学习基础框架应用领域 数学基础线性代数概率论和统计学微积分 编程基础Python基础数据处理工具 项目实战入门1. Scikit-learn 示例项目2. TensorFlow/Keras 入门项目3. Kaggle 入门竞赛 进阶1. PyTorch 官方教程2. MMDetect…...

汽车智能钥匙中PKE低频天线的作用

PKE&#xff08;Passive Keyless Entry&#xff09;即被动式无钥匙进入系统&#xff0c;汽车智能钥匙中PKE低频天线在现代汽车的智能功能和安全保障方面发挥着关键作用&#xff0c;以下是其具体作用&#xff1a; 信号交互与身份认证 低频信号接收&#xff1a;当车主靠近车辆时…...

Codepen和tailwindcss 进行UI布局展示

html <html lang"zh"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>设备管理仪表盘</title><script src"https://cdn.tailw…...

准备好了数据集之后,如何在ubuntu22.04上训练一个yolov8模型。

在Ubuntu 22.04上训练YOLOv8模型的步骤如下&#xff1a; 1. 安装依赖 首先&#xff0c;确保系统已安装Python和必要的库。 sudo apt update sudo apt install python3-pip python3-venv2. 创建虚拟环境 创建并激活虚拟环境&#xff1a; python3 -m venv yolov8_env source…...

集合框架、Collection、list、ArrayList、Set、HashSet和LinkedHashSet、判断两个对象是否相等

DAY7.1 Java核心基础 集合框架 Java 中很重要的一个知识点&#xff0c;实际开发中使用的频录较高&#xff0c;Java 程序中必备的模块 集合就是长度可以改变&#xff0c;可以保存任意数据类型的动态数组 最上层是一组接口&#xff0c;接下来是接口的实现类&#xff0c;第三层…...