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

JavaScript技巧方法总结

技巧总结

    • 字符串
        • 字符串首字母大写
        • 翻转字符串
        • 字符串过滤
    • 数字
        • 十进制转换二进制、八进制、十六进制
        • 获取随机数
        • 字符串转数字
        • 指数幂运算
    • 数组
        • 从数组中过滤出虚假值
        • 数组查找
        • 检测是否为一个安全数组
        • 数组清空
        • 实现并集、交集、和差集
    • 对象
        • 检查对象是否为空
        • 从对象中选择指定数据
        • 动态属性名
    • 逻辑运算
        • 可选链
        • 空值合并运算符
        • ||= 与 ??=
    • 浏览器
        • 清除所有cookie
        • 滚动到页面顶部
        • 是否滚动到页面底部
        • 判断当前标签页是否激活
        • 从url获取参数并转为对象
    • 其他
        • 转布尔值
        • 防抖/节流
        • 控制台调试技巧
        • JavaScript隐式类型转换
        • return取代else if

字符串

字符串首字母大写

该方法用于将英文字符串的首字母大写处理

const titleCase= str => str.charAt(0).toUpperCase() + str.slice(1)
titleCase("hello world")   // Hello world
翻转字符串

该方法用于将一个字符串进行翻转

const reverse = str => str.split('').reverse().join('');
reverse('hello world')   // 'dlrow olleh'
字符串过滤

该方法用于过滤字符串中的特殊字符,返回过滤后的字符串

function characterFilter(str) {let pattern = new RegExp("^[\u4E00-\u9FA5A-Za-z0-9]+$");let resultStr = "";for (let i = 0; i < str.length; i++) {if (pattern.test(str[i])) {resultStr += str[i];}}return resultStr;
}// 示例
characterFilter("abc123#$~!@#$^&*()=456");   // abc123456

数字

十进制转换二进制、八进制、十六进制
const num = 10;
num.toString(2)   // 1010
num.toString(8)   // 12
num.toString(16)  // a
获取随机数

该方法用于获取两个整数之间的随机整数

const random = (min, max) => Math.floor(Math.random() * (max - min + 1) + min);
random(1, 100);
字符串转数字
// 常规操作
let str = '2'
console.log(Number(str))   // 2// ~~运算符
let str = '2'
console.log(~~str)   // 2// 一元运算符
let str = '2'
console.log(+str)   // 2
指数幂运算
// 常规操作
Math.pow(2,2)   // 4
Math.pow(2,3)   // 8
Math.pow(2,4)   // 16// 简化
2**2   // 4
2**3   // 8
2**4   // 16

数组

从数组中过滤出虚假值

0''undefinednullfalse可以通过以下方法过滤

const arr = [0, 1, 2, 3, "", undefined, null, false];
const newArr = arr.filter(Boolean);
console.log(newArr)   // [1, 2, 3]
数组查找

当对数组进行查找时,indexOf()用于获取查找项的位置,如果未找到该项,则返回值为-1。在JavaScript中,0被视为false,而大于或小于0的数字被视为true。因此需要这样来写

if (arr.indexOf(item) > -1) {
}
if (arr.indexOf(item) === -1) {
}

简化写法: 位非 ( ~ ) 运算符对除了-1之外的任何值都返回一个"真"值,也可以使用includes()函数

// 位非运算符
if (~arr.indexOf(item)) {
}
if (!~arr.indexOf(item)) {
}
// includes()
if (arr.includes(item)) {
}
检测是否为一个安全数组
// 借助isArray方法检测,若不是则返回空数组
const safeArray = (array) => {return Array.isArray(array) ? array : [];
};
数组清空

对比arr.length=0arr=[]
在JavaScript中,引用类型相对应的变量实际上是在栈内存中储存了地址,指向堆内存中真实的数据,假设现有一个不空的数组arr

  1. 使用arr.length=0时,作用在真实数组,相当于直接将原数组清空
  2. 使用arr=[]时,实际上是为arr重新赋值为一个空数组[],此时arr原先储存的地址所指向的原数组仍然在内存中(可能导致内存泄露)
实现并集、交集、和差集
let a = new Set([1, 2, 3]);
let b = new Set([4, 3, 2]);
// 并集
let union = new Set([...a, ...b])  // Set(4) {1, 2, 3, 4}
// 交集
let intersect = new Set([...a].filter((x) => b.has(x)))  // set(2) {2, 3}
// (a 相对于 b 的)差集
let difference = new Set([...a].filter((x) => !b.has(x)))  // Set(1) {1}

对象

检查对象是否为空
const isEmpty = obj => Reflect.ownKeys(obj).length === 0 && obj.constructor === Object;
isEmpty({})   // true
isEmpty({a: "1" })   //false
从对象中选择指定数据
const selectSpecifiedData = (obj, items) => {return items.reduce((result, item) => {result[item] = obj[item];return result;}, {});
};
const obj = { a: 1, b: 2, c: 3, d: 4 };
const selected = selectSpecifiedData(obj, ["a", "c"]);
console.log(selected)   // { a: 1, c: 3 }
动态属性名
const key = "name";
const p = { [key]: "zhangsan" };
console.log(p.name)   // zhangsan

逻辑运算

可选链

?. 表示可选链操作符,允许读取对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。操作符的功能类似于 . 链式操作符,不同之处在于,在引用为空 (null 或 undefined) 的情况下不会引起错误,该表达式会短路返回值。

这样的代码,我们将得到如下报错信息

let a;
let b = a.name;   // TypeError: Cannot read properties of undefined (reading 'name')

下面是用可选链访问属性,不管a存在与否,这么做都不会报错,不论有多少属性,只要最后可以访问到结果,就会赋值给b,否则就把undefined赋值给b

let a;
let b;
b = a?.name?.age?.hahahahaha?.就是不报错;
a?.b?.c("还是不报错");

补充: 访问动态属性object?.[i] 调用方法object.fn?.()

空值合并运算符

空值合并运算符 ?? 当其左侧操作数为nullundefined时返回其右侧操作数,否则返回其左侧操作数

const a = null ?? 'zhangsan';
console.log(a)   // zhangsanconst b = 0 ?? 42;
console.log(b)   // 0
||= 与 ??=

||=??= 是两种不同的赋值运算符,它们分别表示逻辑或赋值空值合并赋值

||= 运算符用于给变量赋值,但仅当左侧的变量为假值(0 '' false null undefined等)时才会执行赋值操作

let x = null;
x ||= 10;
console.log(x)   // 输出10,因为x是null,所以赋值为10let y = 10;
y ||= 20;
console.log(y)   // 输出10,因为y不是null,所以不赋值

??= 运算符用于给变量赋值,但仅当左侧的变量为nullundefined时才会执行赋值操作

let a = null;
a ??= 10;
console.log(a)   // 输出10,因为a是null,所以赋值为10let b = 0;
b ??= 10;
console.log(b)   // 输出0,因为b不是null或undefined,所以不会执行赋值操作

浏览器

清除所有cookie

该方法可以通过使用document.cookie来访问 cookie 并清除存储在网页中的所有 cookie

const clearCookies = document.cookie.split(";").forEach((cookie) =>(document.cookie = cookie.replace(/^ +/, "").replace(/=.*/, `=;expires=${new Date(0).toUTCString()};path=/`)))
滚动到页面顶部
const toTop = () => window.scrollTo(0, 0);
toTop()
是否滚动到页面底部

该方法用于判断页面是否已经到底部

const scrolledToBottom = () =>document.documentElement.clientHeight + window.scrollY >=document.documentElement.scrollHeight;
window.addEventListener("scroll", () => {if (scrolledToBottom()) {console.log("已滚动到底部");}
});
判断当前标签页是否激活

该方法用于检测当前浏览器页签是否已经激活

const isTabInView = () => !document.hidden;
从url获取参数并转为对象

网页路径经常是:www.baidu.com/search?xxx=xxx&xxx=xxx这种形式的,我们需要取参数的,可以使用第三方的qs包实现,但只是取参数这一句代码就可以实现,不用再引入qs

const getParameters = URL => JSON.parse(`{"${decodeURI(URL.split("?")[1]).replace(/"/g, '\"').replace(/&/g, '","').replace(/=/g, '":"')}"}`)
getParameters("https://www.baidu.com/search?keyword=js&id=1")   // { keyword: 'js', id: '1' }

其他

转布尔值

使用双重逻辑非操作符可以将任何值转换为布尔值

!!12   // true
!!""   // false
!!0    // false
!!{}   // true
防抖/节流

防抖:指定时间内 频繁触发一个事件,以最后一次触发为准
节流:指定时间内 频繁触发一个事件,只会触发一次

应用场景:
防抖:input搜索,用户在不断输入内容的时候,用防抖来减少请求的次数并且节约请求资源
节流:按钮点击,一秒点击 10 下会发起 10 次请求,节流以后 1 秒点再多次,都只会触发一次

// 防抖
// fn 需要防抖的函数,delay 为定时器时间
function debounce(fn, delay) {let timer = null; // 用于保存定时器return function () {// 如果timer存在 就清除定时器,重新计时if (timer) {clearTimeout(timeout);}//设置定时器,规定时间后执行真实要执行的函数timeout = setTimeout(() => {fn.apply(this);}, delay);};
}// 节流
function throttle(fn) {let timer = null; // 首先设定一个变量,没有执行定时器时,默认为 nullreturn function () {if (timer) return; // 当定时器没有执行的时候timer永远是false,后面无需执行timer = setTimeout(() => {fn.apply(this, arguments);// 最后在setTimeout执行完毕后再把标记设置为true(关键)// 表示可以执行下一次循环了。timer = null;}, 1000);};
}
控制台调试技巧

以下列举部分 console.log 方法,利用这些方法可以有效地调试代码、记录相关信息并优化开发程

console.log(name)
console.log(name, 'name')
// 这种写法没问题,但更推荐以下写法
console.log({ name })console.warn()   // 用于在控制台中显示警告信息
console.error()   // 用于在控制台中显示错误信息
console.clear()   // 用于清除控制台信息
console.count()   // 用于计算被调用的次数
console.countReset()   // 重置使用 count() 创建的特定标签的计数
console.group()   // 用于在控制台中创建一个可折叠的输出日志组
console.groupEnd()   // 用于结束输出日志组
console.time()   // 在控制台中启动一个计时器,它记录了执行代码特定部分所需的时间
console.timeEnd()   // 停止计时器并显示经过的时间
console.table()   // 以表格格式在控制台中显示数据,在处理数组或对象时尤其有用
console.dir()   // 可显示对象的交互式属性列表,提供对象结构的详细视图
JavaScript隐式类型转换

JavaScript是一门弱类型语言,不同类型的变量可以相互转化。我们可以巧妙的利用这一特性,在做类型转换的时候更简洁,更优雅

快速转换Number类型

// 字符串转数字 
const price = parseInt('32')   // 传统方式
const price = Number('32')   // 传统方式
const price = +'32'   // 新方式// 日期转换为时间戳
const timeStamp = new Date().getTime()   // 传统方式
const timeStamp = +new Date()   // 新方式//布尔转数字新方式console.log(+true); // 1console.log(+false); // 0

快速转换Boolean类型

const isTrue = Boolean('')   // 传统方式
const isTrue = !!''   // 新方式const isTrue = Boolean(0)   // 传统方式
const isTrue = !!0   // 新方式const isTrue = Boolean(null)   // 传统方式
const isTrue = !!null   // 新方式const isTrue = Boolean(undefined)   // 传统方式
const isTrue = !!undefined   // 新方式

快速转换String类型

const num = 1;
const str = num.toString()   // 传统方式
const str = num + ''   // 新方式
return取代else if
// 这个写法逻辑上没有问题,但是当if条件增加,越来越多的else if 阅读起来费劲不说
// 更难受的是,当我们删除一个条件的时候,需要找到每一个对应的{}
// 没办法直接选中代码直接删除,完全可以改成return形式让代码变得更简洁、更易读、更容易编辑
if (condition1) {// do condition1
} else if (condition2) {// do condition2
} else if (condition3) {// do condition3
}
// 看起来很简单,大家都一眼就能看懂的改动,但很多有经验的老手也会忘记这个小细节
if (condition1) {// do condition1return;
}if (condition2) {// do condition2return;
}if (condition3) {// do condition3return;
}

相关文章:

JavaScript技巧方法总结

技巧总结 字符串字符串首字母大写翻转字符串字符串过滤 数字十进制转换二进制、八进制、十六进制获取随机数字符串转数字指数幂运算 数组从数组中过滤出虚假值数组查找检测是否为一个安全数组数组清空实现并集、交集、和差集 对象检查对象是否为空从对象中选择指定数据动态属性…...

【Web】2023安洵杯第六届网络安全挑战赛 WP

目录 Whats my name easy_unserialize signal Swagger docs 赛题链接&#xff1a;GitHub - D0g3-Lab/i-SOON_CTF_2023: 2023 第六届安洵杯 题目环境/源码 Whats my name 第一段正则用于匹配以 include 结尾的字符串&#xff0c;并且在 include 之前&#xff0c;可以有任…...

【VUE2】纯前端播放海康视频录像回放,视频格式为rtsp格式,插件使用海康视频插件[1.5.4版本]

一、需求 1、后端从海康平台拉流视频回放数据&#xff0c;前端进行页面渲染播放&#xff0c;视频格式为rtsp eg&#xff1a; 基本格式&#xff1a;rtsp://<username>:<password><ip_addr>:<port>/<path>参数说明&#xff1a; username&#xff…...

mysql程序介绍,选项介绍(常用选项,指定选项的方式,特性),命令介绍(查看,部分命令),从sql文件执行sql语句的两种方法

目录 mysql程序 介绍 选项 介绍 常用选项 指定选项的方式 ​编辑配置文件 环境变量 选项特性 指定选项 选项名 选项值 命令 介绍 查看客户端命令 tee/notee prompt source system help contents 从.sql文件执行sql语句 介绍 方式 source 从外部直接导入…...

3D 生成重建032-Find3D去找到它身上的每一份碎片吧

3D 生成重建032-Find3D去找到它身上的每一份碎片吧 文章目录 0 论文工作1 论文方法2 实验结果 0 论文工作 该论文研究三维开放世界部件分割问题&#xff1a;基于任何文本查询分割任何物体中的任何部件。以往的方法在物体类别或部件词汇方面存在局限性。最近人工智能的进步在二…...

树莓派4B android 系统添加led灯 Hal 层

本文内容需要用到我上一篇文章做的驱动&#xff0c;可以先看文章https://blog.csdn.net/ange_li/article/details/136759249 一、Hal 层的实现 1.Hal 层的实现一般放在 vendor 目录下&#xff0c;我们在 vendor 目录下创建如下的目录 aosp/vendor/arpi/hardware/interfaces/…...

LLama系列模型简要概述

LLama-1&#xff08;7B, 13B, 33B, 65B参数量&#xff1b;1.4T tokens训练数据量&#xff09; 要做真正Open的AI Efficient&#xff1a;同等预算下&#xff0c;增大训练数据&#xff0c;比增大模型参数量&#xff0c;效果要更好 训练数据&#xff1a; 书、Wiki这种量少、质量高…...

Elasticsearch使用(2):docker安装es、基础操作、mapping映射

1 安装es 1.1 拉取镜像 docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/elasticsearch:7.17.3 1.2 运行容器 运行elasticsearch容器&#xff0c;挂载的目录给更高的权限&#xff0c;否则可能会因为目录权限问题导致启动失败&#xff1a; docker r…...

Python跳动的爱心

系列文章 序号直达链接表白系列1Python制作一个无法拒绝的表白界面2Python满屏飘字表白代码3Python无限弹窗满屏表白代码4Python李峋同款可写字版跳动的爱心5Python流星雨代码6Python漂浮爱心代码7Python爱心光波代码8Python普通的玫瑰花代码9Python炫酷的玫瑰花代码10Python多…...

安卓手机怎么轻松转换更新ip网络地址

随着移动互联网的快速发展&#xff0c;IP地址作为网络身份标识的重要性日益凸显。对于安卓手机用户来说&#xff0c;但有时候我们希望能够轻松转更换ip地址&#xff0c;以提高网络安全性或访问特定内容的需要。那么&#xff0c;安卓手机如何更换IP地址呢&#xff1f;本文将为您…...

socket UDP 环路回显的服务端

基于socket通讯的方式&#xff0c;无论用http或者udp或者自定义的协议&#xff0c;程序结构都是类似的。这个以UDP协议为例简要说明。 #include <stdio.h> // 标准输入输出库 #include <sys/types.h> // 提供了一些数据类型&#xff0c;如ssize_t #include <sy…...

单例模式的缺点

1. 违反单一职责原则 单例模式不仅管理对象的实例化&#xff0c;还负责提供对该实例的全局访问。这使得单例类承担了过多的职责。复杂的单例类可能变得难以维护和扩展。 2. 难以进行单元测试 单例模式引入了全局状态&#xff0c;使得测试环境中的依赖关系难以隔离。在测试中…...

如何通过看板进行跨境电商的圣诞商品数据分析与优化选品流程?

引言 随着圣诞季的临近&#xff0c;跨境电商迎来了重要的销售时机。选品工作对于跨境电商的成功至关重要&#xff0c;直接关系到销售业绩和利润。本文结合相关网页信息&#xff0c;深入探讨跨境电商在圣诞期间如何利用信息整合工具展开选品工作&#xff0c;并优化选品流程。同…...

【Linux】vi/vim 使用技巧

文章目录 1. 简介vi和vim的历史vi和vim的区别安装vimUbuntu/DebianCentOS/RHELFedoramacOSWindows 2. 基本操作启动和退出启动退出 模式介绍普通模式插入模式命令模式 光标移动基本移动高级移动 3. 文本编辑插入文本删除文本复制和粘贴撤销和重做 4. 搜索与替换基本搜索搜索文本…...

React的功能是什么?

以下是一些React的主要功能和特点&#xff1a; 组件化架构&#xff1a; React将UI拆分为可复用的独立组件&#xff0c;每个组件负责一部分UI的逻辑和展示。组件可以嵌套使用&#xff0c;形成复杂的UI结构。 虚拟DOM&#xff1a; React使用虚拟DOM来管理UI的状态和更新&#xff…...

【6】数据分析检测(DataFrame 1)

学习目标3 昨天&#xff0c;我们学习了Series。 而Pandas的另一种数据类型&#xff1a;DataFrame&#xff0c;在许多特性上和Series有相似之处。 今天&#xff0c;我们将学习DataFrame的相关知识&#xff1a; 1. DataFrame的概念 2. 构造一个DataFrame 3. DataFrame的常用…...

React初体验 - [Next.js项目]

效果 须知 Next.js与React有哪些区别?https://juejin.cn/post/7112334604027035655 React中文手册 https://react.docschina.org/learn/start-a-new-react-project Next.js中文手册 https://www.nextjs.cn/docs/getting-started 步骤 npx提速 - 更换npm国内源 - 参考文档 …...

学生信息管理系统(简化版)

前端部分&#xff08;vue2&#xff09; &#xff01;&#xff01;前端采用vue2框架&#xff0c;下面只写出必要的代码文件&#xff0c;想要使用需自行先创建vue项目 部分截图 下面是目录结构 下面是public文件夹里面的html文件 <!DOCTYPE html> <html lang"&q…...

网易云信荣获“HarmonyOS NEXT SDK星河奖”

近日&#xff0c;鸿蒙生态伙伴 SDK 开发者论坛在北京举行。 网易云信凭借在融合通信领域的技术创新和鸿蒙生态贡献&#xff0c;荣获鸿蒙生态“HarmonyOS NEXT SDK星河奖”。 会上&#xff0c;华为鸿蒙正式推出 SDK 生态繁荣伙伴支持计划&#xff0c;旨在为 SDK 领域伙伴和开发…...

Java版-图论-最小生成树-Prim算法

实现描述 如图: Prim算法的基本思想是从一个顶点开始,逐步构建最小生成树。具体步骤如下: 随机选取一个顶点作为起始点,并将其加入最小生成树的集合中。从该顶点出发,选择一条边连接到其他未被访问的顶点中的最小权值边。将该顶点加入到最小生成树的集合中,并标记为已…...

python-@property 和setter属性

T 一个装饰器&#xff0c;使得类中方法像属性一样被使用。 W 这是原本的类及其属性的访问 class Person():def __init__(self, firstname:str, lastname:str):self.first firstnameself.last lastnameself.full_name self.first self.lastdef printFullname(self):re…...

es有string类型字段吗

在较新的版本的 Elasticsearch (ES) 中,string 类型已经被移除,取而代之的是更具体的 text 和 keyword 类型。这一改变是在 Elasticsearch 5.0 版本引入的,目的是为了提供更好的性能和更明确的数据处理方式。 Text 类型 用途:text 类型用于全文搜索。当你有一个字段需要进…...

shell编程入门之提取字符并设置rtc时间

awk用法 awk是一款文本处理工具&#xff0c;通常在Unix和Linux操作系统中使用&#xff0c;用于以行为单位对文本进行处理和操作。它可以读取输入文本&#xff0c;对其进行处理&#xff0c;生成报表、统计信息等&#xff0c;并将结果输出到标准输出设备中。 它主要有以下特点&…...

数据库进阶教程:结合编程实现动态数据操作

在前一篇文章中&#xff0c;我们了解了数据库的基础知识及其核心操作。这次&#xff0c;我们将通过编程语言&#xff08;以 Python 为例&#xff09;与数据库进行交互&#xff0c;进一步提升你的数据库应用能力。我们将学习如何通过代码完成数据的插入、查询、更新和删除&#…...

高效可靠:吉客云数据集成到MySQL技术详解

测试-查询货品供应商报价-dange&#xff1a;吉客云数据集成到MySQL的技术案例分享 在现代企业的数据管理中&#xff0c;如何高效、可靠地实现不同系统之间的数据对接是一个关键问题。本文将聚焦于一个具体的系统对接集成案例——将吉客云的数据集成到MySQL数据库中&#xff0c…...

docker安装ddns-go(外网连接局域网)

docker先下载镜像&#xff0c;目前最新版是v6.7.6 也可以csdn资源下载 再导入dockers https://download.csdn.net/download/u014756339/90096748 docker load -i ddns-go.tar 启动 docker run -d --name ddns-go --restartalways --nethost -v /opt/ddns-go:/root jeessy/…...

hbuilder 安卓app手机调试中基座如何设置

app端使用基座 手机在线预览功能 1.点击运行 2.点击运行到手机或者模拟器 3.制作自定义调试基座 4.先生成证书【可以看我上一篇文档写的有】&#xff0c;点击打包 5.打包出android自定义调试基座【android_debug.apk】,【就跟app打包一样需要等个几分钟】 6.点击运行到手…...

【pyspark学习从入门到精通23】机器学习库_6

目录 分割连续变量 标准化连续变量 分类 分割连续变量 我们经常处理高度非线性的连续特征&#xff0c;而且只用一个系数很难拟合到我们的模型中。 在这种情况下&#xff0c;可能很难只通过一个系数来解释这样一个特征与目标之间的关系。有时&#xff0c;将值划分到离散的桶中…...

Postman高阶技能:Collection集合批量运行!

01、Collection&#xff08;集合&#xff09;介绍 当我们对一个或多个系统中的很多接口用例进行维护时&#xff0c;首先想到的就是对接口用例进行分类管理&#xff0c;同时还希望对这批接口用例做回归测试。 在 Postman 中也提供了这样一个功能&#xff0c;就是 Collection&a…...

ipset搭配iptables实现城市IP访问限制

最近刷了一台飞牛os&#xff0c;但是没有二次验证的功能&#xff0c;裸奔在公网上&#xff0c;看着让人揪心。于是最近研究了一下&#xff0c;设置防火墙只让某些城市能够访问设备&#xff0c;这样大大降低了服务器的风险&#xff0c;因为大多数被黑的原因都是来自国外。 1.下…...

WPF表格控件的列利用模块适配动态枚举类

将枚举列表转化到类内部赋值&#xff0c;在初始化表格行加载和双击事件时&#xff0c;触发类里面的枚举列表的赋值 <c1:Column Header"变更类型" Binding"{Binding ChangeType, ModeTwoWay, ValidatesOnExceptionsTrue, ValidatesOnDataErrorsTrue, NotifyOn…...

java引用相关(四大引用类型,软引用避免oom,弱引用表,虚引用和引用队列,可达性分析算法)

1. 什么是引用&#xff1f; 问题&#xff1a;什么是引用&#xff1f;Java中的引用是如何工作的&#xff1f; 答案&#xff1a; 引用 是对象的句柄&#xff0c;用于访问堆内存中的对象。在Java中&#xff0c;引用变量实际上存储的是对象的地址&#xff0c;而不是对象本身。通…...

图像识别 | Matlab基于卷积神经网络(CNN)的宝可梦识别源程序,GUI界面。附详细的运行说明。

图像识别 | Matlab基于卷积神经网络(CNN)的宝可梦识别源程序&#xff0c;GUI界面。附详细的运行说明。 目录 图像识别 | Matlab基于卷积神经网络(CNN)的宝可梦识别源程序&#xff0c;GUI界面。附详细的运行说明。预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab基…...

2、开发环境优化与创建第一个插件程序

一、创建测试用例二、vscode优化2.1 修改默认终端为普通cmd2.2 配置一键编译&&运行&&监视一、创建测试用例 使用命令yo code生成一个测试用例,选择或输入下面的内容。2. 命令的最后会提示是否使用vscode打开,选择打开就行。 3. 在当前目录下会产生helloworld…...

Android CoordinatorLayout:打造高效交互界面的利器

目录 一、CoordinatorLayout 介绍及特点 二、使用方法 2.1 创建 CoordinatorLayout 布局 2.2 添加需要协调的子视图 2.3 自定义 Behavior 三、结语 相关推荐 在Android开发中&#xff0c;面对复杂多变的用户界面需求&#xff0c;CoordinatorLayout以其强大的交互管理能力…...

计算机视觉:学习指南

一、引言 计算机视觉作为人工智能领域的一个重要分支&#xff0c;致力于让计算机理解和解释视觉信息&#xff0c;近年来取得了令人瞩目的进展&#xff0c;广泛应用于安防监控、自动驾驶、图像编辑、医学影像分析等众多领域。从入门到精通计算机视觉需要系统地学习一系列知识和…...

创建型设计模式

一、设计模式介绍 1.设计模式是什么 设计模式是指在软件开发中&#xff0c;经过验证的&#xff0c;用于解决在特定环境下&#xff0c;重复出现的&#xff0c;特定问题的解决方案&#xff1b; 2.设计模式怎么来的&#xff1f; 满足设计原则后&#xff0c;慢慢迭代出来的。 3.设…...

【Ubuntu】使用ip link工具创建虚拟局域网并配置?

&#x1f98b;&#x1f98b;&#x1f98b;如何使用ip link工具创建虚拟局域网&#xff1f; sudo ip link add link enx888bd66b7000 name enx.120 type vlan id 120 上述命令使用ip link工具在Linux系统中创建了一个新的虚拟局域网&#xff08;VLAN&#xff09;接口&#xff0c…...

川渝地区软件工程考研择校分析

通过最新数据分析,5所高校软件工程专业2025年考研难度从高到低预计为: 电子科技大学 >> 四川大学 > 重庆大学 ≈ 西南交通大学 > 西南大学 对于想考川渝地区985但核心目标为优先上岸的考生,建议重点考虑西南交通大学软件工程学硕。该校24届软件工程学硕实际录取1…...

云原生基础设施指南:精通 Kubernetes 核心与高级用法

1. 云原生的诞生 随着互联网规模的不断增长&#xff0c;以及企业对敏捷开发、快速交付和高可用性的需求日益增强&#xff0c;传统的单体架构逐渐暴露出局限性&#xff0c;难以满足现代业务对动态扩展和高效迭代的要求。为此&#xff0c;云原生应运而生。 云原生是为云计算时代…...

Pyinstaller使用指南以及遇到的问题

一、在cmd命令行执行安装pyinstaller工具 pip install pyinstaller 二、在命令行中执行打包命令即可 格式如下&#xff1a; pyinstaller [opts] yourprogram.py 参数含义 -F 指定打包后只生成一个exe格式的文件(建议写上这个参数) -D –onedir 创建一个目录&#xff0c;包含…...

美图撕掉蔡文胜标签

卖掉比特币的美图不投机了。 作者|周立青 编辑|杨舟 12月5日&#xff0c;比特币突破10万美元大关&#xff0c;曾花费1亿美元购入虚拟货币的美图宣布已出售所有加密货币。 美图在港交所发布公告称&#xff0c;自2024年11月起&#xff0c;公司已开始出售其持有的加密货币&…...

【Spring】IoC和DI,控制反转,Bean对象的获取方式

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;什么是IoC 1&#xff1a;什么是容器 2&#xff1a;什么是IoC 二&#xff1a;IoC应用…...

【015】对文件进行压缩_#py

对文件进行压缩 1. 下载7z软件2. 调用exe文件3. 压缩和分卷压缩4. 完整代码 1. 下载7z软件 从官网下载https://www.7-zip.org/软件。 2. 调用exe文件 主要是通过 subprocess 调用对应的command的命令。 subprocess.run(command, checkTrue)其中 command 的应包含7z软件的ex…...

OD C卷【智能成绩表】

题目 小明来到某学校当老师&#xff0c;需要将学生按考试总分或单科分数进行排名。 输入描述&#xff1a; 第一行输入学生人数n、科目数量m; 0<n<100; 0<m<10 第二行输入m个科目名称&#xff0c;以空格分开&#xff1b;科目只由英文字母构成&#xff0c;长度不超过…...

开源架构与云计算的传奇融合

开源架构与云计算的传奇融合 一、引言二、开源架构与云计算的卓越优势&#xff08;一&#xff09;成本效益惊世骇俗&#xff08;二&#xff09;灵活性与可扩展性无与伦比&#xff08;三&#xff09;社区支持与创新活力爆棚 三、震撼应用案例剖析&#xff08;一&#xff09;容器…...

【SpringBoot-事件监听】

文章目录 1. 定义事件2. 创建监听器3. 发布事件注意事项 在Spring Boot中&#xff0c;事件监听是一种常用的机制&#xff0c;用于在应用程序的不同部分之间进行松耦合的通信。Spring Boot基于Spring框架&#xff0c;因此它继承了Spring的事件发布和监听机制。以下是如何在Sprin…...

【docker】springboot 服务提交至docker

准备docker &#xff08;不是docker hub或者harbor&#xff0c;就是可以运行docker run的服务&#xff09;&#xff0c;首先确保docker已经安装。 本文以linux下举例说明&#xff1a; systemctl stats docker ● docker.service - Docker Application Container EngineLoaded…...

Facebook广告突然无消耗?原因解析与解决方案。

在Facebook广告投放中&#xff0c;广告突然无消耗是很多广告主都会遇到的难题。这种情况不仅浪费时间&#xff0c;还可能导致营销活动停滞&#xff0c;影响业务发展。那么&#xff0c;广告无消耗的原因是什么&#xff1f;又该如何解决呢&#xff1f; 一、Facebook广告无消耗的…...

05 在 Linux 使用 AXI DMA

DMA简介 DMA 是一种采用硬件实现存储器与存储器之间或存储器与外设之间直接进行高速数据传输的技术&#xff0c;传输过程无需 CPU 参与&#xff08;但是CPU需要提前配置传输规则&#xff09;&#xff0c;可以大大减轻 CPU 的负担。 DMA 存储传输的过程如下&#xff1a; CPU 向…...