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

【JavaScript-Day 2】开启 JS 之旅:从浏览器控制台到 `<script>` 标签的 Hello World 实践

Langchain系列文章目录

01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南
02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖
03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南
04-玩转 LangChain:从文档加载到高效问答系统构建的全程实战
05-玩转 LangChain:深度评估问答系统的三种高效方法(示例生成、手动评估与LLM辅助评估)
06-从 0 到 1 掌握 LangChain Agents:自定义工具 + LLM 打造智能工作流!
07-【深度解析】从GPT-1到GPT-4:ChatGPT背后的核心原理全揭秘
08-【万字长文】MCP深度解析:打通AI与世界的“USB-C”,模型上下文协议原理、实践与未来

Python系列文章目录

PyTorch系列文章目录

机器学习系列文章目录

深度学习系列文章目录

Java系列文章目录

JavaScript系列文章目录

01-【JavaScript-Day 1】从零开始:全面了解 JavaScript 是什么、为什么学以及它与 Java 的区别
02-【JavaScript-Day 2】开启 JS 之旅:从浏览器控制台到 <script> 标签的 Hello World 实践


文章目录

  • Langchain系列文章目录
  • Python系列文章目录
  • PyTorch系列文章目录
  • 机器学习系列文章目录
  • 深度学习系列文章目录
  • Java系列文章目录
  • JavaScript系列文章目录
  • 前言
  • 一、JavaScript 的运行环境:代码在哪里安家?
    • 1.1 浏览器控制台:即时实验场
      • 1.1.1 什么是浏览器控制台?
      • 1.1.2 如何打开控制台?
      • 1.1.3 在控制台运行代码
    • 1.2 HTML 文件中的 `<script>` 标签:网页的魔法棒
      • 1.2.1 `<script>` 标签简介
      • 1.2.2 内部脚本 vs 外部脚本
        • (1) 内部脚本
        • (2) 外部脚本
  • 二、动手实践:"Hello, World!"
    • 2.1 准备你的第一个 HTML 文件
      • 2.1.1 创建 HTML 文件
      • 2.1.2 编写 HTML 基本结构
    • 2.2 编写你的第一行 JavaScript 代码
      • 2.2.1 在 `script.js` 中编写代码
      • 2.2.2 在 HTML 中引用 `script.js`
    • 2.3 在浏览器中查看结果
      • 2.3.1 打开 HTML 文件
      • 2.3.2 查看控制台输出
  • 三、常见问题与建议
    • 3.1 代码没效果怎么办?
    • 3.2 内部脚本好还是外部脚本好?
  • 四、总结


前言

在上一篇 [【JavaScript-Day 1】你好,JavaScript!]中,我们初步认识了 JavaScript 的历史、能力以及它在现代 Web 开发中的重要地位。理论学习固然重要,但编程的魅力更在于实践。今天,我们将迈出激动人心的第一步:亲手运行你的第一行 JavaScript 代码!本篇将带你熟悉 JavaScript 的基本运行环境,并指导你完成经典的 “Hello, World!” 示例,为你后续的 JavaScript 学习之旅打下坚实的基础。

一、JavaScript 的运行环境:代码在哪里安家?

JavaScript 代码并非凭空运行,它需要一个“宿主环境”来解释和执行。对于前端开发而言,最常见的宿主环境就是我们的 Web 浏览器。此外,Node.js 等环境也让 JavaScript 得以在服务器端等其他领域大放异彩,但这超出了我们入门阶段的范围。目前,我们主要关注浏览器环境。在浏览器中,主要有两种方式来运行 JavaScript 代码:

1.1 浏览器控制台:即时实验场

想象一下,你有一个想法,想快速验证一小段代码的运行结果,或者测试某个 JavaScript 命令的用法,浏览器控制台就是为此而生的完美工具。

1.1.1 什么是浏览器控制台?

浏览器控制台(Console)是现代浏览器内置的开发者工具的一部分。它提供了一个交互式的命令行界面,允许你直接输入并执行 JavaScript 代码片段,并能看到代码的输出信息、错误提示等。对于学习、调试和快速测试来说,控制台非常方便。

1.1.2 如何打开控制台?

不同浏览器打开控制台的方式略有差异,但通常都很简单:

  • Chrome:F12 键,或者右键点击页面任意位置,选择“检查”(Inspect),然后切换到 “Console” (控制台) 标签页。
  • Firefox:F12 键,或者右键点击页面任意位置,选择“检查元素”(Inspect Element),然后切换到 “Console” (控制台) 标签页。
  • Edge:F12 键,或者右键点击页面任意位置,选择“检查”(Inspect),然后切换到 “Console” (控制台) 标签页。
  • Safari: 需要先在 Safari 的“偏好设置” -> “高级”中勾选“在菜单栏中显示‘开发’菜单”,然后在顶部菜单栏选择“开发” -> “显示 JavaScript 控制台”。

尝试在你的浏览器中打开控制台,熟悉一下它的界面。

1.1.3 在控制台运行代码

打开控制台后,你会看到一个提示符(通常是 >>>)。你可以在这里直接输入 JavaScript 代码,然后按 Enter 键执行。

示例:

// 在控制台输入以下代码,然后按 Enter
1 + 1 

你会看到控制台输出了结果 2

// 再试试这个
console.log("你好,控制台!"); 

你会看到控制台打印出了字符串 "你好,控制台!"console.log() 是我们接下来会详细介绍的一个非常重要的命令。

优点: 快速、直接、方便测试小段代码。
缺点: 代码不会被保存,刷新页面或关闭浏览器后就丢失了,不适合编写复杂的程序。

1.2 HTML 文件中的 <script> 标签:网页的魔法棒

要在网页加载时自动运行更复杂的 JavaScript 代码,或者让 JavaScript 与网页内容进行交互,我们就需要将 JavaScript 代码嵌入到 HTML 文件中。这通常通过 <script> 标签来实现。

1.2.1 <script> 标签简介

<script> 标签是 HTML 的标准标签之一,专门用于包含或引用 JavaScript 代码。浏览器在解析 HTML 文档时,遇到 <script> 标签就会开始解释执行其中的 JavaScript 代码。

1.2.2 内部脚本 vs 外部脚本

有两种主要方式使用 <script> 标签:

(1) 内部脚本

将 JavaScript 代码直接写在 HTML 文件内的 <script></script> 标签之间。

<!DOCTYPE html>
<html>
<head><title>内部脚本示例</title>
</head>
<body><h1>我的第一个网页</h1><script>// JavaScript 代码直接写在这里console.log("这是来自内部脚本的消息!");// 可以在这里编写更多代码...</script></body>
</html>

优点: 简单直接,适合少量、与特定页面紧密相关的代码。
缺点:

  • 如果代码量大,会使 HTML 文件变得臃肿,难以维护。
  • JavaScript 代码与 HTML 结构混杂,不利于关注点分离。
  • 代码无法在多个页面复用。
(2) 外部脚本

将 JavaScript 代码保存在一个单独的 .js 文件中,然后在 HTML 文件中使用 <script> 标签的 src 属性来引用这个外部文件。这是推荐的方式,尤其对于稍有规模的项目。

步骤:

  1. 创建 JS 文件: 创建一个新文件,例如命名为 main.js,并将你的 JavaScript 代码写入其中。

    // main.js 文件内容
    console.log("这是来自外部脚本 main.js 的消息!");
    // 更多代码...
    
  2. 在 HTML 中引用: 在 HTML 文件中使用 <script> 标签,并通过 src 属性指定 .js 文件的路径。

    <!DOCTYPE html>
    <html>
    <head><title>外部脚本示例</title>
    </head>
    <body><h1>我的网页</h1><p>内容...</p><script src="main.js"></script> 
    </body>
    </html>
    

    注意: src 属性指定的文件路径可以是相对路径(相对于当前 HTML 文件)或绝对路径(完整的 URL)。当使用了 src 属性时,<script> 标签内部的代码(如果有)会被忽略。

优点:

  • 关注点分离: HTML 结构、CSS 样式和 JavaScript 行为分离,代码更清晰、易于维护。
  • 可复用性: 同一个 .js 文件可以被多个 HTML 页面引用。
  • 浏览器缓存: 浏览器可以缓存外部 .js 文件,当用户访问其他引用了相同文件的页面时,加载速度更快。

可视化对比:

graph TDA[运行 JavaScript] --> B{浏览器环境};B --> C[浏览器控制台];B --> D[HTML 文件];D --> E(内部脚本: <script>...</script>);D --> F(外部脚本: <script src="file.js"></script>);style C fill:#f9f,stroke:#333,stroke-width:2pxstyle E fill:#ccf,stroke:#333,stroke-width:2pxstyle F fill:#cfc,stroke:#333,stroke-width:2px

二、动手实践:“Hello, World!”

现在,让我们结合所学知识,完成编程界的传统入门仪式——输出 “Hello, World!”。我们将使用外部脚本的方式,这是更常用且推荐的做法。

2.1 准备你的第一个 HTML 文件

你需要一个文本编辑器(如 VS Code, Sublime Text, Notepad++, 甚至是记事本)来编写代码。

2.1.1 创建 HTML 文件

  1. 在你电脑上创建一个新的文件夹,用于存放你的项目文件,例如 js_practice
  2. js_practice 文件夹中,创建一个新的文本文件,将其命名为 index.html
  3. 用你的文本编辑器打开 index.html 文件。

2.1.2 编写 HTML 基本结构

index.html 文件中输入以下基本的 HTML 结构:

<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>我的第一个 JavaScript 程序</title> </head>
<body> <h1>欢迎来到 JavaScript 的世界!</h1> </body>
</html>
  • <!DOCTYPE html>: 告诉浏览器这是一个 HTML5 文档。
  • <html>: HTML 页面的根元素。lang="zh-CN" 属性有助于搜索引擎和浏览器理解页面语言。
  • <head>: 包含页面的元信息,这些信息通常不会直接显示给用户,但对浏览器和搜索引擎很重要。
    • <meta charset="UTF-8">: 规定 HTML 文档使用 UTF-8 字符编码,这是目前最广泛使用的编码,支持包括中文在内的多种语言。
    • <meta name="viewport" ...>: 用于响应式设计,确保页面在不同设备上(尤其是移动设备)有良好的显示效果。
    • <title>: 定义浏览器工具栏、收藏夹和搜索结果中显示的页面标题。
  • <body>: 包含用户在浏览器窗口中看到的所有内容,如文本、图片、链接、脚本等。

保存 index.html 文件。

2.2 编写你的第一行 JavaScript 代码

现在,我们来创建外部 JavaScript 文件。

  1. js_practice 文件夹中,创建另一个新文件,将其命名为 script.js
  2. 用文本编辑器打开 script.js 文件。

2.2.1 在 script.js 中编写代码

script.js 文件中,输入以下这行代码:

// script.js 文件内容// 这是一条指令,告诉浏览器在控制台打印一条消息
console.log("Hello, World!"); 
  • // 开头的是单行注释,用于解释代码,不会被执行。我们将在下一篇详细讲解注释。
  • console.log() 是一个内置函数,用于在浏览器的开发者控制台中输出信息。括号内的 "Hello, World!" 是我们要输出的字符串(文本)。
  • 语句末尾的分号 ; 表示语句的结束。虽然 JavaScript 有自动分号插入机制(ASI),但在入门阶段,强烈建议总是在语句末尾加上分号,以避免潜在问题。

保存 script.js 文件。

2.2.2 在 HTML 中引用 script.js

回到 index.html 文件,在 </body> 标签之前添加 <script> 标签来引用我们刚创建的 script.js 文件:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>我的第一个 JavaScript 程序</title>
</head>
<body><h1>欢迎来到 JavaScript 的世界!</h1> <script src="script.js"></script> 
</body>
</html>

为什么通常放在 </body> 前?
<script> 标签放在 <body> 内容的末尾,可以确保在执行 JavaScript 代码之前,页面的 HTML 结构(DOM)已经基本加载完成。这样,如果你的 JavaScript 需要操作页面上的元素(我们以后会学到),就能确保这些元素已经存在了。如果放在 <head> 中(不加特殊处理),脚本执行时可能会阻塞页面的渲染。

保存 index.html 文件。

2.3 在浏览器中查看结果

现在,一切准备就绪!

2.3.1 打开 HTML 文件

在你的文件管理器中找到 js_practice 文件夹,双击 index.html 文件。你的默认浏览器应该会打开这个页面,显示标题 “欢迎来到 JavaScript 的世界!”。

2.3.2 查看控制台输出

页面上似乎什么都没发生?别急,我们的 console.log() 是将信息输出到开发者控制台的。按照 1.1.2 节的方法,打开浏览器的开发者控制台。

你应该能在控制台中看到清晰地打印出了:

Hello, World!

恭喜你! 你已经成功运行了你的第一行 JavaScript 代码!

三、常见问题与建议

刚开始接触时,遇到问题很正常。这里列出一些常见情况及建议:

3.1 代码没效果怎么办?

  1. 检查拼写: JavaScript 是大小写敏感的。console.log 不能写成 Console.Logconsole.LOG。检查你的文件名、函数名、变量名是否完全正确。
  2. 检查路径: 如果使用外部脚本,确保 <script src="路径"> 中的路径正确无误。如果 index.htmlscript.js 在同一个文件夹,路径就是 script.js。如果在不同文件夹,需要写对相对路径或绝对路径。
  3. 查看控制台错误: 控制台不仅显示 console.log 的输出,更重要的是它会报告 JavaScript 代码中的错误。仔细阅读错误信息,它通常会告诉你哪一行代码出了问题以及可能的原因。
  4. 确认文件已保存: 确保你修改过的 .html.js 文件都已经保存了。
  5. 清除浏览器缓存: 有时浏览器会缓存旧的脚本文件。尝试强制刷新(通常是 Ctrl+Shift+RCmd+Shift+R)或清除浏览器缓存再试。

3.2 内部脚本好还是外部脚本好?

对于学习和小型示例,内部脚本可能更快捷。但对于实际项目开发,强烈推荐使用外部脚本,原因在 1.2.2 节已经阐述:

  • 代码组织性更好: 结构(HTML)、表现(CSS)、行为(JS)分离。
  • 可维护性更高: 修改脚本不影响 HTML 文件。
  • 可重用性强: 同一个脚本可用于多个页面。
  • 利于浏览器缓存: 提升加载性能。

养成使用外部脚本的好习惯,对你未来的开发非常有益。

四、总结

恭喜你完成了 JavaScript 学习的重要一步!回顾一下本篇的核心内容:

  1. JavaScript 运行环境: 主要在浏览器中运行,可以通过浏览器控制台进行快速测试,或通过 HTML 文件中的 <script> 标签来执行。
  2. <script> 标签用法: 可以包含内部脚本(直接写在 HTML 中),也可以通过 src 属性引用外部 .js 文件(推荐方式)。
  3. console.log() 是一个基础且极其有用的命令,用于在浏览器开发者控制台中输出信息,是调试和理解代码执行流程的重要工具。
  4. “Hello, World!” 实践: 我们通过创建 index.htmlscript.js 文件,并使用 <script src="..."> 将它们关联起来,成功在浏览器控制台输出了 “Hello, World!”。
  5. 最佳实践: 推荐将 JavaScript 代码放在外部 .js 文件中,并在 HTML 的 </body> 标签前引用,以获得更好的代码组织、可维护性和性能。

现在你已经具备了运行 JavaScript 代码的基本能力。在下一篇文章中,我们将深入了解 JavaScript 的基本语法规则,如语句、注释以及大小写敏感性,为编写更复杂的代码打好基础。继续加油!


相关文章:

【JavaScript-Day 2】开启 JS 之旅:从浏览器控制台到 `<script>` 标签的 Hello World 实践

Langchain系列文章目录 01-玩转LangChain&#xff1a;从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块&#xff1a;四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain&#xff1a;从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...

Windows 中使用dockers创建指定java web 为镜像和运行容器

以下是在 Windows 中使用 Docker 创建 Java Web 应用镜像并运行容器的分步指南&#xff1a; 步骤 1&#xff1a;安装 Docker 下载并安装 Docker Desktop for Windows启动 Docker Desktop&#xff0c;确保使用 WSL 2 后端&#xff08;推荐&#xff09;或 Hyper-V。 步骤 2&…...

机器人--MCU

MCU MCU&#xff08;Microcontroller Unit&#xff0c;微控制器&#xff09; 是机器人的“神经末梢”&#xff0c;负责 实时控制、传感器接口、低层通信 等关键任务。 作用 MCU的核心作用 功能具体任务示例实时控制电机PWM生成、PID调节、紧急制动机械臂关节控制、无人机电调…...

从融智学视域快速回顾世界历史和主要语言文字最初历史证据(列表对照分析比较)

融智学视域下世界历史与语言文字起源对照分析表 以下从融智学五个基本范畴&#xff08;物、意、文、道、理义法&#xff09;&#xff0c;梳理主要古代文明的文字起源&#xff0c;及其历史证据&#xff0c;并进行跨文明比较&#xff1a; 文明/文字 物&#xff08;载体&#xf…...

JavaScript性能优化实战(8):缓存策略与离线优化

前言 在Web应用中,性能优化不仅仅是关于代码执行速度,还与资源获取和数据持久化密切相关。合理的缓存策略可以显著减少网络请求,提升应用响应速度,同时有效降低服务器负载和用户流量消耗。离线优化则进一步解决了网络不稳定或断网场景下的用户体验问题,为Web应用提供类似…...

quantization-大模型权重量化简介

原文地址 https://towardsdatascience.com/introduction-to-weight-quantization-2494701b9c0c/ https://towardsdatascience.com/4-bit-quantization-with-gptq-36b0f4f02c34/ 权重量化简介 大型语言模型(LLM) 以其庞大的计算需求而闻名。通常&#xff0c;模型的大小是通过将参…...

unity ScriptObject的使用

1.先定义一个类数据类型 [Serializable] public class FoodItemData { public int foodID; // 食物唯一ID public string foodName; // 食物名称 [TextArea(3, 10)] // 多行文本输入 public string description; // 食物描述 pu…...

广义线性模型三剑客:线性回归、逻辑回归与Softmax分类的统一视角

文章目录 广义线性模型三剑客&#xff1a;线性回归、逻辑回归与Softmax分类的统一视角引言&#xff1a;机器学习中的"家族相似性"广义线性模型(GLMs)基础三位家族成员的统一视角1. 线性回归(Linear Regression)2. 逻辑回归(Logistic Regression)3. Softmax分类(Softm…...

Linux时钟与时间API

深入理解 Linux 时钟与时间 API 时间是计算领域的基础概念之一。在 Linux 系统中&#xff0c;精确可靠的时间管理对于系统日志记录、任务调度、网络通信、性能分析、文件系统操作乃至应用程序的正确运行都至关重要。本文将深入探讨 Linux 中的时钟类型、相关的 C API、使用示例…...

闭包(Closure)及其作用和影响

一、闭包是什么 闭包&#xff08;Closure&#xff09;指的是​​一个函数能够记住并访问其词法作用域&#xff08;lexical scope&#xff09;&#xff0c;即使该函数在其词法作用域之外执行​​。换句话说&#xff0c;闭包让函数可以“记住”它被创建时的环境。 闭包的核心特…...

toLua笔记

基本 LuaState luaStatenew LuaState(); luaState.Start(); luaState.DoString("xxx"); luaState.DoFile("yyy.lua"); luaState.Require("zzz");//不要加.lua后缀 luaState.CheckTop();//检查解析器栈顶为空 luaState.Dispose(); luaStatenull;…...

20:深度学习-多层感知器原理

深度学习-多层感知器的原理 ------------------常州龙熙机器视觉培训班-课程资料 1.单层感知机 多层感知机是由感知机推广而来&#xff0c;感知机学习算法(PLA: Perceptron Learning Algorithm)用神经元的结构进行描述的话就是一个单独的。 首先了解下单层感知机: b--常量 …...

高频数据冲击数据库的技术解析与应对方案

目录 前言一、问题现象与影响分析1.1 典型场景表现1.2 核心问题分类 二、失效根源深度剖析2.1 架构设计缺陷2.2 缓存策略缺陷 三、解决方案与最佳实践3.1 缓存架构设计3.1.1 分层缓存架构3.1.2 热点数据识别 3.2 缓存策略优化3.2.1 动态过期时间算法3.2.2 缓存更新策略对比 3.3…...

(37)VTK C++开发示例 ---纹理地球

文章目录 1. 概述2. CMake链接VTK3. main.cpp文件4. 演示效果 更多精彩内容&#x1f449;内容导航 &#x1f448;&#x1f449;VTK开发 &#x1f448; 1. 概述 将图片纹理贴到球体上&#xff0c;实现3D地球的效果。 该代码使用了 VTK (Visualization Toolkit) 库来创建一个纹理…...

LeetCode - 1137.第N个泰波那契数

目录 题目 解法 动态规划解法 核心思想 执行流程 具体例子 时间复杂度和空间复杂度 代码 题目 1137. 第 N 个泰波那契数 - 力扣&#xff08;LeetCode&#xff09; 解法 动态规划解法 核心思想 动态规划是一种通过将复杂问题分解为更小子问题来解决的算法方法。我将…...

智能决策支持系统的系统结构:四库架构与融合范式

前文我们已经了解了智能决策支持系统的基本概念以及基本构件&#xff0c;接下来我们了解一下系统结构。 有关“智能决策支持系统的基本概念”的内容&#xff0c;可看我文章&#xff1a;智能决策支持系统的基本概念与理论体系-CSDN博客 有关“智能决策支持系统的基本构建”的…...

单片机裸机环境下临界区保护

目录 1、直接中断屏蔽法 2、嵌套计数优化法 3、BASEPRI寄存器应用 4、动态优先级调整策略 5、LDREX/STREX指令应用 6、位带别名区原子访问 7、上下文感知保护 8、中断延迟优化技术 在嵌入式系统开发中&#xff0c;临界区保护是确保系统可靠性的关键技术。本文以ARM Cor…...

【数字电路】第六章 时序逻辑电路

一、时序逻辑电路概述 1.逻辑电路的分类 2.时序逻辑电路的一般结构形式 3.时序逻辑电路的描述方法 4.时序逻辑电路按触发器动作特点分类 5.时序逻辑电路按输出信号特点分类 6.常用时序逻辑电路 二、同步时序逻辑电路的分析 1.同步时序逻辑电路的分析方法 TTL触发器允许输入端…...

Spring Boot的GraalVM支持:构建低资源消耗微服务

文章目录 引言一、GraalVM原生镜像技术概述二、Spring Boot 3.x的GraalVM支持三、适配GraalVM的关键技术点四、构建原生镜像微服务实例五、性能优化与最佳实践总结 引言 微服务架构已成为企业应用开发的主流模式&#xff0c;但随着微服务数量的增加&#xff0c;资源消耗问题日…...

MySQL中的窗口函数

深入理解窗口函数&#xff08;Window Functions&#xff09; 窗口函数确实经常用于分组后为行分配序号&#xff08;如1,2,3…&#xff09;&#xff0c;但它的功能远不止于此。窗口函数是SQL中极其强大的分析工具&#xff0c;可以让你在不减少行数的情况下进行复杂计算。 窗口函…...

WITH在MYSQL中的用法

WITH 子句&#xff08;也称为公共表表达式&#xff0c;Common Table Expression&#xff0c;简称 CTE&#xff09;是 SQL 中一种强大的查询构建工具&#xff0c;它可以显著提高复杂查询的可读性和可维护性。 一、基本语法结构 WITH cte_name AS (SELECT ... -- 定义CTE的查询…...

人工智能:如何快速筛选出excel中某列存在跳号的单元格位置?

前提&#xff1a; 电脑上必须提前安装好了【office AI】软件工具 方法如下&#xff1a; 1、打开要操作的excel表格&#xff0c;点击上方的【officeAI】&#xff0c;再点击左边的【右侧面板】按钮&#xff0c;就会出现如下右侧的【OfficeAI助手】 2、在OfficeAI助手的聊天框…...

动态功耗与静态功耗

0 英文缩写 SOI&#xff08;Silicon on Insulator&#xff09;绝缘体上硅FET&#xff08;Field-Effect Transistor&#xff09;场效应管CMOS&#xff08;Complementary Metal Oxide Semiconductor&#xff09;互补金属氧化物半导体 1 功耗分类 CMOS电路功耗主要可以通过如下…...

Webug4.0靶场通关笔记10- 第14关链接注入

目录 第14关 链接注入 1.打开靶场 2.源码分析 3.渗透实战 &#xff08;1&#xff09;方法1&#xff1a;跳转外部网页 &#xff08;2&#xff09;方法2&#xff1a;获取cookie 4.漏洞防御 本文通过《webug靶场第14关 链接注入》来进行渗透实战。 第14关 链接注入 链接注…...

PyTorch_指定运算设备 (包含安装 GPU 的 PyTorch)

PyTorch默认会将张量创建在 CPU 控制的内存中&#xff0c;即&#xff1a;默认的运算设备为 CPU。我们也可以将张量创建在 GPU 上&#xff0c;能够利用对于矩阵计算的优势加快模型训练。 将张量移动到 GPU 上有两种方法&#xff1a; 使用 cuda 方法直接在 GPU 上创建张量使用 …...

Pytorch-CUDA版本环境配置

Pytorch-CUDA版本环境配置 电脑如果是Windows平台下的Nvidia GPU的用户&#xff0c;需配置Pytorch的CUDA版本&#xff0c;分为三步&#xff1a; 1. 安装或更新NVIDA显卡驱动 官方驱动下载地址&#xff1a; https://www.nvidia.cn/Download/index.aspx?langcn 2. 安装CUDA To…...

力扣:24两两交换链表的节点

目录 1.题目描述&#xff1a; 2.算法思路&#xff1a; 3.代码展示&#xff1a; 1.题目描述&#xff1a; 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能…...

SETNX的存在问题和redisson进行改进的原理

首先分布式锁的原理就是当锁不存在时则创建&#xff0c;创建到锁的线程则执行业务。但是在这些操作中会有一些问题&#xff0c;下面是redis命令setNX设置锁的代码片段 if(缓存中有){返回缓存中的数据 }else{获取分布式锁if(获取锁成功&#xff09;{try{查询数据库}finally{释放…...

抽象工厂模式(Abstract Factory Pattern)

很好&#xff01;你现在已经开始接触设计模式了&#xff0c;而**抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09;是一种常用于“创建一系列相关产品”**的经典设计模式。 我会一步步帮你理解&#xff1a; &#x1f9e0; 一句话解释 抽象工厂模式&#xff1a;提…...

AVIOContext 再学习

这个目前阶段用的不多&#xff0c;暂时不要花费太多精力。 url 的格式不同&#xff0c;使用的传输层协议也不同。这块看代码还没看到自己想的这样。 目前看的信息是&#xff1a;avformatContext 的 io_open 回调函数 在默认情况下叫 io_open_default&#xff0c;在解复用的 av…...

Power Query精通指南1:查询结构设计、数据类型、数据导入与迁移(平面文件、Excel、Web)

文章目录 零、Power Query简介0.1 Power Query 主要功能0.2 Power Query 的优势0.3 Power Query 组件 一、Power Query数据处理基本流程1.1 前期准备1.2 提取1.3 转换1.3.1 Power Query 编辑器界面1.3.2 默认转换1.3.3 自定义转换 1.4 加载1.4.1 自动检测数据类型1.4.2 重命名查…...

Linux 内核升级问题

一、内核升级后启动失败 原因&#xff1a;initramfs 镜像未正确生成或 GRUB 配置错误。 处理步骤如下&#xff1a; 1、进入旧内核启动系统。 2、重新生成 initramfs&#xff1a; sudo dracut -f --regenerate-all 3、更新 GRUB 配置&#xff1a; sudo grub2-mkconfig -o /boo…...

Linux 进程间通信(IPC)详解

进程间通信&#xff08;IPC&#xff09;深入解析 一、进程间通信概述 在操作系统里&#xff0c;不同进程间常常需要进行数据交换、同步协调等操作&#xff0c;进程间通信&#xff08;Inter - Process Communication&#xff0c;IPC&#xff09;机制应运而生。在Linux系统中&a…...

第3章 Python 3 基础语法001

文章目录 一、缩进规则1. 基本规则2. 示例3. 多级缩进4. 常见错误二、注释规则1. 单行注释2. 多行注释3. 特殊注释4. 注释规范三、代码块规则1. 控制结构2. 函数定义3. 类定义4. 上下文管理器四、总结与最佳实践五、调试技巧以下是 Python 3 基础语法规则的详细说明,涵盖 缩进…...

数据库介绍以及windows下mysql安装

文章目录 1. 前言2. MySQL概述2.1 相关概念2.2 DBMS的分类2.3 数据库交互图2.4 MySQL 介绍 3. MySQL 安装 数据库介绍以及windows下mysql安装 1. 前言 我们浏览的淘宝商品页面详情、刷视频网站的一个个视频&#xff0c;这些数据其实都是存储在公司的存储系统中的。想象一下&…...

list的两种设计

1. 内存布局对比 (1) MSVC 的实现 cpp class _List_node {_List_node* _Next; // 指向下一个节点_List_node* _Prev; // 指向前一个节点_Value_type _Value; // 存储的数据 }; 特点&#xff1a; 每个节点包含两个指针和一个数据成员。 Debug 模式&#xff1a;可能添加迭代…...

【C#】一个类中的接口方法使用static和不使用static的区别

在C#中&#xff0c;类中的接口方法是否使用 static 修饰符会带来显著的区别。这是因为接口方法的实现和调用方式与普通方法不同&#xff0c;而 static 关键字的使用进一步改变了这些行为。 以下是两者的区别&#xff1a; 1. 不使用 static 的接口方法 在这种情况下&#xff0…...

共铸价值:RWA 联合曲线价值模型,撬动现实资产生态

摘要 本文提出了一种针对真实资产&#xff08;RWA&#xff09;产业的联合曲线激励模型&#xff0c;将劳动与数据贡献映射为曲线价值&#xff0c;并基于固定档位与指数衰减奖励发放总计 2.1亿积分。该模型结合了去中心化定价与平滑递减机制&#xff0c;不仅为早期贡献者提供更高…...

【libuv】基于libuv的exe链接错误

vs2017构建 基于libuv的exe链接错误 1>libuv.lib(util.obj) : error LNK2019: unresolved external symbol __imp__GetAdaptersAddresses20 referenced in function _uv_interface_addresses 1>libuv.lib(util.obj) : error LNK2019: unresolved external symbol __imp__…...

什么是生成式 AI (GenAI)?

在科技飞速发展的今天,人工智能(AI)已不再是一个遥远的概念,而是悄然融入了我们的日常生活。从智能语音助手到自动驾驶汽车,从个性化推荐系统到医疗诊断辅助,AI正以前所未有的速度改变着世界。然而,在AI的广阔领域中,有一个分支正逐渐崭露头角,成为推动未来创新的关键…...

爬虫准备前工作

1.Pycham的下载 网址&#xff1a;PyCharm: The only Python IDE you need 2.Python的下载 网址&#xff1a;python.org&#xff08;python3.9版本之后都可以&#xff09; 3.node.js的下载 网址&#xff1a;Node.js — 在任何地方运行 JavaScript&#xff08;版本使用18就可…...

JVM——JVM 是如何处理异常的?

JVM 是如何处理异常的&#xff1f; 在 Java 编程语言中&#xff0c;异常处理是一种强大的机制&#xff0c;用于应对程序运行时出现的错误和意外情况。而 Java 虚拟机&#xff08;JVM&#xff09;作为 Java 程序运行的核心环境&#xff0c;在异常处理过程中扮演着至关重要的角色…...

网络基础-----C语言经典题目(12)

一、MTU&#xff0c;IP 协议头中 TTL是什么&#xff1f; MTU 指的是网络层能够接收的最大数据包大小&#xff0c;单位为字节。主要作用是限制数据链路层一次能够传输的数据量。 IP 协议头中的 TTL 是 IP 数据头部的一个 8 位字段&#xff0c;最初它的设计目的是限制数据包在网络…...

【第十六届蓝桥杯省赛】比赛心得与经验分享(PythonA 组)

文章目录 一、我的成绩二、我的备赛经历三、如何备赛&#xff08;个人观点&#xff09;1. 基础语法2. 数据结构3. 算法4. 数学 四、做题技巧与注意事项五、我的题解试题A 偏蓝 &#x1f3c6;100%试题B IPV6 &#x1f3c6;0%试题C 2025图形 &#x1f3c6;100%试题D 最大数字 &am…...

解决Maven项目中报错“java不支持版本6即更高的版本 7”

错误背景 当Maven项目编译或运行时出现错误提示 Java不支持版本6即更高的版本7&#xff0c;通常是由于项目配置的JDK版本与当前环境或编译器设置不一致导致的。例如&#xff1a; 项目配置的Java版本为6或7&#xff0c;但实际使用的是JDK 17。Maven或IDE的编译器未正确指定目标…...

MySQL--索引入门

MySQL官方对索引的定义为&#xff1a;索引&#xff08;Index&#xff09;是帮助MySQL高效获取数据的数据结构。 Mysql在存储数据之外&#xff0c;数据库系统各种还维护着满足特定查找算法的数据结构&#xff0c;这些数据结构以某种引用&#xff08;指向&#xff09;表中的数据…...

【网络原理】深入理解HTTPS协议

本篇博客给大家带来的是网络原理的知识点, 由于时间有限, 分三天来写, 本篇为线程第三篇,也是最后一篇. &#x1f40e;文章专栏: JavaEE初阶 &#x1f680;若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动…...

利用Elixir中的原子特性 + 错误消息泄露 -- Atom Bomb

题目信息: This new atom bomb early warning system is quite strange… 题目使用 elixir 语言 一开始,我们会访问 /page.html <!DOCTYPE html> <!-- 设定文档语言为英语 --> <html lang"en"> <head><!-- 设定字符编码为UTF-8 --><…...

机器人--STM32

STM32启动模式 1,从主闪存存储启动器启动(默认) 2,从系统存储启动器启动 下载程序时需要使用的启动方式。 3&#xff0c;从内置的SRAM启动...

LVGL -文本显示 英文、中文

1 文本 在 LVGL 中,文本控件(Label)是一种基本的 UI 组件,用于显示文本信息。文本控件可以用于各种场景,如显示状态信息、提示消息、标题等。在图形用户界面(GUI)开发中,文本是传达信息和指导用户的重要组成部分。为了有效地展示文本,以下是与文本相关的几个关键方面…...