JavaScript函数全解析:从基础到高阶应用
1. JavaScript函数基础与核心概念JavaScript函数是这门语言最基础也是最重要的组成部分之一。作为一门函数式编程语言JavaScript中的函数不仅仅是执行特定任务的代码块更是一等公民First-class citizen这意味着函数可以像其他数据类型一样被传递和使用。1.1 函数定义方式在JavaScript中函数主要有三种定义方式函数声明Function Declarationfunction square(number) { return number * number; }特点存在函数提升hoisting可以在定义前调用。函数表达式Function Expressionconst square function(number) { return number * number; };特点不存在提升必须在定义后使用。箭头函数Arrow FunctionES6新增const square (number) number * number;特点简洁语法不绑定自己的this、arguments、super或new.target。提示箭头函数在单参数时可省略括号单行时可省略return和花括号但多行时必须使用return。1.2 函数参数处理JavaScript函数的参数处理非常灵活默认参数ES6function greet(name Guest) { console.log(Hello, ${name}!); }剩余参数Rest Parametersfunction sum(...numbers) { return numbers.reduce((acc, num) acc num, 0); }arguments对象传统方式function showArgs() { console.log(arguments); // 类数组对象 }注意箭头函数没有自己的arguments对象但可以访问外围函数的arguments。2. 常用内置函数分类解析2.1 数据类型转换函数parseInt()parseInt(10); // 10 parseInt(101, 2); // 5 (二进制转换)parseFloat()parseFloat(3.14); // 3.14Number()Number(123); // 123 Number(true); // 1String()String(123); // 123 String(null); // nullBoolean()Boolean(); // false Boolean(0); // false Boolean([]); // true2.2 数学计算函数Math对象常用方法Math.abs(-5); // 5 Math.ceil(4.2); // 5 Math.floor(4.9); // 4 Math.round(4.5); // 5 Math.max(1, 3, 2); // 3 Math.min(1, 3, 2); // 1 Math.random(); // 0~1之间的随机数 Math.pow(2, 3); // 8 (ES7可用2**3)指数和对数函数Math.exp(1); // e的1次方 ≈ 2.718 Math.log(Math.E); // 1 (自然对数) Math.log10(100); // 2 Math.log2(8); // 32.3 字符串处理函数基本字符串方法hello.charAt(1); // e hello.concat( world); // hello world hello.includes(ell); // true hello.indexOf(l); // 2 hello.lastIndexOf(l); // 3 hello.slice(1, 3); // el hello.substring(1, 3); // el hello.substr(1, 3); // ell (已废弃) hello.repeat(2); // hellohello大小写转换Hello.toLowerCase(); // hello hello.toUpperCase(); // HELLOtrim系列 hello .trim(); // hello hello .trimStart(); // hello hello .trimEnd(); // helloES6新增方法hello.startsWith(he); // true hello.endsWith(lo); // true hello.padStart(8, *); // ***hello hello.padEnd(8, *); // hello***2.4 数组操作函数基本数组方法const arr [1, 2, 3]; arr.push(4); // [1,2,3,4] arr.pop(); // [1,2,3] arr.unshift(0); // [0,1,2,3] arr.shift(); // [1,2,3] arr.concat([4,5]); // [1,2,3,4,5] arr.join(-); // 1-2-3 arr.reverse(); // [3,2,1] arr.slice(1,3); // [2,3] arr.splice(1,1,a); // [1,a,3] (原数组变为[1,a,3])搜索和位置方法[1,2,3].indexOf(2); // 1 [1,2,3].lastIndexOf(2); // 1 [1,2,3].includes(2); // true [1,2,3].find(x x 1); // 2 [1,2,3].findIndex(x x 1); // 1迭代方法[1,2,3].forEach(x console.log(x)); [1,2,3].map(x x * 2); // [2,4,6] [1,2,3].filter(x x 1); // [2,3] [1,2,3].reduce((acc, x) acc x, 0); // 6 [1,2,3].some(x x 2); // true [1,2,3].every(x x 0); // trueES6新增方法Array.from(hello); // [h,e,l,l,o] Array.of(1,2,3); // [1,2,3] [1,2,3].fill(0); // [0,0,0] [1,2,3].copyWithin(0,1); // [2,3,3] [1,[2,3]].flat(); // [1,2,3] [1,2,3].flatMap(x [x, x*2]); // [1,2,2,4,3,6]2.5 对象相关函数对象属性操作const obj {a:1, b:2}; Object.keys(obj); // [a,b] Object.values(obj); // [1,2] Object.entries(obj); // [[a,1],[b,2]] Object.assign({}, obj, {b:3}); // {a:1,b:3} Object.freeze(obj); // 冻结对象 Object.seal(obj); // 密封对象原型相关方法Object.create(proto); Object.getPrototypeOf(obj); Object.setPrototypeOf(obj, proto);属性描述符Object.getOwnPropertyDescriptor(obj, a); Object.defineProperty(obj, c, {value:3}); Object.defineProperties(obj, {c:{value:3},d:{value:4}});2.6 日期时间函数Date构造函数new Date(); // 当前时间 new Date(2023, 0, 1); // 2023年1月1日 new Date(2023-01-01); // ISO格式日期常用实例方法const now new Date(); now.getFullYear(); // 年份 now.getMonth(); // 月份(0-11) now.getDate(); // 日期(1-31) now.getHours(); // 小时(0-23) now.getMinutes(); // 分钟(0-59) now.getSeconds(); // 秒数(0-59) now.getTime(); // 时间戳(毫秒) now.toISOString(); // ISO格式字符串 now.toLocaleString(); // 本地格式字符串日期计算const date new Date(); date.setDate(date.getDate() 7); // 一周后2.7 JSON处理函数JSON.stringify()JSON.stringify({a:1, b:2}); // {a:1,b:2} JSON.stringify({a:1, b:2}, null, 2); // 带缩进的格式化输出JSON.parse()JSON.parse({a:1,b:2}); // {a:1, b:2}注意JSON.stringify会忽略函数和undefined属性Date对象会被转为ISO字符串。3. 高阶函数与函数式编程3.1 高阶函数概念高阶函数是指可以接收函数作为参数或者返回函数作为结果的函数。JavaScript中常见的高阶函数包括// 接收函数作为参数 function operate(a, b, operation) { return operation(a, b); } // 返回函数 function multiplier(factor) { return function(x) { return x * factor; }; }3.2 常见高阶函数模式函数柯里化function curry(fn) { return function curried(...args) { if (args.length fn.length) { return fn.apply(this, args); } else { return function(...args2) { return curried.apply(this, args.concat(args2)); }; } }; } const add (a, b, c) a b c; const curriedAdd curry(add); curriedAdd(1)(2)(3); // 6函数组合function compose(...fns) { return function(x) { return fns.reduceRight((acc, fn) fn(acc), x); }; } const add1 x x 1; const double x x * 2; const addThenDouble compose(double, add1); addThenDouble(5); // 12记忆化函数function memoize(fn) { const cache new Map(); return function(...args) { const key JSON.stringify(args); if (cache.has(key)) return cache.get(key); const result fn.apply(this, args); cache.set(key, result); return result; }; } const factorial memoize(n n 1 ? 1 : n * factorial(n - 1));3.3 函数式编程工具函数节流(throttle)函数function throttle(fn, delay) { let lastCall 0; return function(...args) { const now Date.now(); if (now - lastCall delay) { lastCall now; return fn.apply(this, args); } }; }防抖(debounce)函数function debounce(fn, delay) { let timer; return function(...args) { clearTimeout(timer); timer setTimeout(() fn.apply(this, args), delay); }; }单次执行函数function once(fn) { let called false; return function(...args) { if (!called) { called true; return fn.apply(this, args); } }; }4. 异步编程相关函数4.1 Promise相关函数Promise构造函数new Promise((resolve, reject) { // 异步操作 if (success) resolve(value); else reject(error); });Promise静态方法Promise.resolve(value); // 返回一个已解决的Promise Promise.reject(error); // 返回一个已拒绝的Promise Promise.all([p1, p2]); // 所有Promise都解决时解决 Promise.allSettled([p1, p2]); // 所有Promise都完成时解决 Promise.race([p1, p2]); // 第一个完成的Promise Promise.any([p1, p2]); // 第一个解决的PromisePromise实例方法promise.then(onFulfilled, onRejected); promise.catch(onRejected); promise.finally(onFinally);4.2 async/await函数async函数声明async function fetchData() { const response await fetch(url); const data await response.json(); return data; }async函数表达式const fetchData async function() { // ... };async箭头函数const fetchData async () { // ... };4.3 定时器函数setTimeoutconst timerId setTimeout(() { console.log(Delayed message); }, 1000); clearTimeout(timerId); // 取消定时器setIntervalconst intervalId setInterval(() { console.log(Repeating message); }, 1000); clearInterval(intervalId); // 清除间隔requestAnimationFramefunction animate() { // 动画逻辑 requestAnimationFrame(animate); } requestAnimationFrame(animate);5. 实用函数与技巧5.1 类型检查函数基本类型检查typeof 42; // number typeof str; // string typeof true; // boolean typeof undefined; // undefined typeof null; // object (历史遗留问题) typeof {}; // object typeof []; // object typeof function(){}; // function更精确的类型检查Object.prototype.toString.call([]); // [object Array] Object.prototype.toString.call(null); // [object Null] Array.isArray([]); // true自定义类型检查function isPlainObject(obj) { return Object.prototype.toString.call(obj) [object Object] Object.getPrototypeOf(obj) Object.prototype; }5.2 实用工具函数深度克隆function deepClone(obj) { if (obj null || typeof obj ! object) return obj; const clone Array.isArray(obj) ? [] : {}; for (const key in obj) { if (obj.hasOwnProperty(key)) { clone[key] deepClone(obj[key]); } } return clone; }对象合并function deepMerge(target, source) { for (const key in source) { if (source.hasOwnProperty(key)) { if (typeof source[key] object source[key] ! null) { if (!target[key]) target[key] Array.isArray(source[key]) ? [] : {}; deepMerge(target[key], source[key]); } else { target[key] source[key]; } } } return target; }函数执行时间测量function measureTime(fn) { return function(...args) { const start performance.now(); const result fn.apply(this, args); const end performance.now(); console.log(Execution time: ${end - start}ms); return result; }; }5.3 函数式编程实用函数管道函数function pipe(...fns) { return function(x) { return fns.reduce((acc, fn) fn(acc), x); }; } const process pipe( x x 1, x x * 2, x x - 3 ); process(5); // (51)*2-3 9偏函数应用function partial(fn, ...presetArgs) { return function(...laterArgs) { return fn(...presetArgs, ...laterArgs); }; } const add (a, b) a b; const add5 partial(add, 5); add5(3); // 8惰性求值函数function lazy(fn) { let result; let evaluated false; return function() { if (!evaluated) { result fn.apply(this, arguments); evaluated true; } return result; }; } const expensiveCalc lazy(() { console.log(Calculating...); return 42; }); expensiveCalc(); // 第一次调用会计算 expensiveCalc(); // 第二次直接返回缓存结果6. 浏览器环境特有函数6.1 DOM操作函数元素选择document.getElementById(id); document.querySelector(.class); document.querySelectorAll(div);元素创建与修改document.createElement(div); element.textContent text; element.innerHTML spanHTML/span; element.setAttribute(data-id, 123); element.classList.add(active);事件处理element.addEventListener(click, handler); element.removeEventListener(click, handler); element.dispatchEvent(new Event(click));6.2 BOM相关函数窗口控制window.open(url, _blank); window.close(); window.scrollTo(x, y);存储相关localStorage.setItem(key, value); localStorage.getItem(key); sessionStorage.setItem(key, value);导航相关location.href https://example.com; location.reload(); history.pushState(state, title, url);6.3 网络请求函数Fetch APIfetch(url, { method: POST, headers: {Content-Type: application/json}, body: JSON.stringify(data) }) .then(response response.json()) .then(data console.log(data)) .catch(error console.error(error));XMLHttpRequest传统方式const xhr new XMLHttpRequest(); xhr.open(GET, url); xhr.onload function() { if (xhr.status 200) console.log(xhr.responseText); }; xhr.send();WebSocketconst socket new WebSocket(ws://example.com); socket.onopen () socket.send(Hello); socket.onmessage event console.log(event.data);7. Node.js环境特有函数7.1 文件系统函数回调风格const fs require(fs); fs.readFile(file.txt, utf8, (err, data) { if (err) throw err; console.log(data); });Promise风格const fs require(fs).promises; fs.readFile(file.txt, utf8) .then(data console.log(data)) .catch(err console.error(err));同步风格const data fs.readFileSync(file.txt, utf8);7.2 路径处理函数path模块const path require(path); path.join(/foo, bar, baz); // /foo/bar/baz path.resolve(foo, bar); // 绝对路径 path.dirname(/foo/bar/baz.txt); // /foo/bar path.basename(/foo/bar/baz.txt); // baz.txt path.extname(baz.txt); // .txtURL处理const url require(url); const parsed url.parse(https://example.com/path?query123); const myURL new URL(https://example.com);7.3 进程控制函数process对象process.argv; // 命令行参数 process.env.NODE_ENV; // 环境变量 process.cwd(); // 当前工作目录 process.exit(1); // 退出进程子进程const { exec } require(child_process); exec(ls -la, (error, stdout, stderr) { if (error) console.error(error); console.log(stdout); });定时器增强setImmediate(() console.log(Immediate)); process.nextTick(() console.log(Next tick));8. 函数性能优化与调试8.1 性能优化技巧避免不必要的函数创建// 不好的做法 - 每次渲染都创建新函数 function Component() { return button onClick{() console.log(Click)}Click/button; } // 好的做法 - 使用useCallback或类方法 function Component() { const handleClick useCallback(() console.log(Click), []); return button onClick{handleClick}Click/button; }使用记忆化减少重复计算const memoized memoize(expensiveCalculation); memoized(input1); // 计算 memoized(input1); // 从缓存读取批量操作DOM// 不好的做法 - 多次重排 elements.forEach(el el.style.width 100px); // 好的做法 - 使用文档片段 const fragment document.createDocumentFragment(); elements.forEach(el { el.style.width 100px; fragment.appendChild(el); }); document.body.appendChild(fragment);8.2 函数调试技巧console的进阶用法console.time(label); // 要测量的代码 console.timeEnd(label); // 输出执行时间 console.table([{a:1, b:2}, {a:3, b:4}]); // 表格形式输出 console.group(Group); console.log(Message inside group); console.groupEnd();debugger语句function problematicFunction() { debugger; // 执行到这里会暂停 // ... }错误追踪function trackError() { try { // 可能出错的代码 } catch (error) { console.error(Error:, error); console.trace(); // 打印调用栈 } }8.3 函数性能分析performance APIperformance.mark(start); // 要测量的代码 performance.mark(end); performance.measure(measureName, start, end); const measure performance.getEntriesByName(measureName)[0]; console.log(measure.duration); // 执行时间(毫秒)内存分析// 记录初始内存 const initialMemory process.memoryUsage().heapUsed; // 执行代码后 const finalMemory process.memoryUsage().heapUsed; console.log(Memory used: ${finalMemory - initialMemory} bytes);CPU分析const profiler require(v8-profiler-next); profiler.startProfiling(profile1); // 执行要分析的代码 const profile profiler.stopProfiling(profile1); profile.export().pipe(fs.createWriteStream(profile.cpuprofile));9. 函数安全与最佳实践9.1 函数安全注意事项避免eval// 不安全 - 可能执行恶意代码 eval(userInput); // 替代方案 - 使用JSON.parse或Function构造函数 const data JSON.parse(userInput); const func new Function(a, b, return a b);防止原型污染function safeMerge(target, source) { for (const key in source) { if (key ! __proto__ key ! constructor key ! prototype) { target[key] source[key]; } } return target; }输入验证function processInput(input) { if (typeof input ! string) { throw new TypeError(Expected string input); } // 处理输入 }9.2 函数设计最佳实践单一职责原则// 不好的做法 - 函数做太多事情 function processUser(user) { validateUser(user); saveToDatabase(user); sendWelcomeEmail(user); updateAnalytics(user); } // 好的做法 - 拆分函数 function processUser(user) { validateUser(user); persistUser(user); notifyUser(user); trackUser(user); }合理的参数数量// 不好的做法 - 参数太多 function createUser(name, email, password, age, gender, address, phone) {} // 好的做法 - 使用对象参数 function createUser({name, email, password, ...details}) {}明确的返回值// 不好的做法 - 不一致的返回类型 function getUser(id) { if (!id) return false; return {id, name: John}; } // 好的做法 - 一致的返回类型 function getUser(id) { if (!id) return null; return {id, name: John}; }9.3 错误处理策略错误优先回调function asyncOperation(callback) { someAsyncTask((err, result) { if (err) return callback(err); callback(null, processResult(result)); }); }Promise错误处理asyncFunction() .then(result processResult(result)) .catch(error handleError(error)) .finally(() cleanup());async/await错误处理async function run() { try { const result await asyncFunction(); return processResult(result); } catch (error) { handleError(error); } finally { cleanup(); } }10. 现代JavaScript新特性函数10.1 ES6新增函数特性默认参数function greet(name Guest) { console.log(Hello, ${name}!); }剩余参数function sum(...numbers) { return numbers.reduce((acc, num) acc num, 0); }解构参数function printUser({name, age}) { console.log(${name} is ${age} years old); }10.2 ES2017新增函数Object.values/Object.entriesconst obj {a:1, b:2}; Object.values(obj); // [1,2] Object.entries(obj); // [[a,1],[b,2]]字符串填充函数hello.padStart(10, *); // *****hello hello.padEnd(10, *); // hello*****函数参数尾逗号function foo( param1, param2, // 允许尾逗号 ) {}10.3 ES2018新增函数特性异步迭代async function process(array) { for await (const item of array) { await doSomething(item); } }Rest/Spread属性const obj {a:1, b:2, c:3}; const {a, ...rest} obj; // rest {b:2, c:3} const newObj {...obj, d:4}; // {a:1, b:2, c:3, d:4}Promise.finallyfetch(url) .then(response response.json()) .catch(error console.error(error)) .finally(() stopLoading());10.4 ES2019新增函数Array.flat/flatMap[1,[2,[3]]].flat(2); // [1,2,3] [1,2,3].flatMap(x [x, x*2]); // [1,2,2,4,3,6]Object.fromEntriesObject.fromEntries([[a,1],[b,2]]); // {a:1, b:2}字符串trim方法 hello .trimStart(); // hello hello .trimEnd(); // hello10.5 ES2020新增函数可选链操作符const name user?.profile?.name;空值合并运算符const value input ?? default;BigIntconst bigNum BigInt(Number.MAX_SAFE_INTEGER) 1n;动态导入const module await import(/modules/module.js);全局Thisconst global globalThis; // 浏览器中是windowNode中是globalPromise.allSettledPromise.allSettled([promise1, promise2]) .then(results { results.forEach(result { if (result.status fulfilled) console.log(result.value); else console.error(result.reason); }); });String.matchAllconst regexp /t(e)(st(\d?))/g; const str test1test2; const matches [...str.matchAll(regexp)];逻辑赋值运算符a || b; // a a || b a b; // a a b a ?? b; // a a ?? b数字分隔符const billion 1_000_000_000;WeakRef和FinalizationRegistryconst weakRef new WeakRef(targetObject); const registry new FinalizationRegistry(heldValue { console.log(${heldValue} was garbage collected); }); registry.register(targetObject, some value);

相关新闻

C++ STL容器实战:用map与vector实现高效员工分组管理

C++ STL容器实战:用map与vector实现高效员工分组管理

1. 项目概述:为什么用C容器做员工分组? 最近在带新人做一个小型的管理系统原型,发现很多刚接触C的朋友,一提到“分组”、“归类”这些操作,第一反应就是去写一堆 if-else 或者手搓链表。其实,C标准库里的…

2026/7/26 11:35:05 阅读更多 →
C++ JSON处理实战:nlohmann/json库从入门到精通

C++ JSON处理实战:nlohmann/json库从入门到精通

1. 项目概述:为什么C开发者需要关注JSON处理?在C项目里,处理配置文件、网络API响应或者数据序列化时,JSON格式几乎成了绕不开的一环。早些年,C标准库对JSON的支持几乎为零,大家要么手写解析器,要…

2026/7/30 9:31:49 阅读更多 →
C++多线程内存管理实战:从RAII到线程池的并发编程核心

C++多线程内存管理实战:从RAII到线程池的并发编程核心

1. 项目概述:为什么多线程内存管理是C面试的“必答题”?干了这么多年C,面过不少人,也被面过不少次。我发现一个现象,但凡面试官想考察候选人的真实功底,尤其是对系统级编程的理解深度,多线程环境…

2026/7/31 0:26:08 阅读更多 →

最新新闻

Arduino开发双轨制:从Mind+图形化入门到Arduino IDE精通的实战指南

Arduino开发双轨制:从Mind+图形化入门到Arduino IDE精通的实战指南

1. 项目概述:Arduino软件生态的双轨制如果你刚开始接触Arduino,面对的第一个选择往往不是买哪块板子,而是用哪个软件来写代码。这就像你要做木工,得先选好顺手的锯子和刨子。Arduino的软件世界,目前主要有两大流派&…

2026/7/31 3:18:34 阅读更多 →
TVS管选型实战:从核心参数到PCB布局的浪涌与静电防护设计

TVS管选型实战:从核心参数到PCB布局的浪涌与静电防护设计

1. 项目概述:从“选型”到“防护”的实战思维在硬件设计,尤其是接口电路和电源路径的设计中,浪涌和静电防护是一个绕不开的经典话题。很多工程师,尤其是刚入行的朋友,拿到一个TVS管(瞬态电压抑制二极管&…

2026/7/31 3:18:34 阅读更多 →
密评实战:聚焦设备与计算层面的密码安全合规要点

密评实战:聚焦设备与计算层面的密码安全合规要点

1. 项目概述:从“密评”到“设备和计算层面”的实战聚焦最近和不少做安全合规的朋友聊天,发现一个挺有意思的现象:大家一提到“密评”(商用密码应用安全性评估),第一反应往往是网络通信、身份认证这些“看得…

2026/7/31 3:18:34 阅读更多 →
AI生图还在为一个细节重来?2026年免费的AI图片生成工具推荐

AI生图还在为一个细节重来?2026年免费的AI图片生成工具推荐

AI生图这件事,我发现一个有意思的现象:大家对"生成一张好看的图"已经没什么期待了——这两年各家模型都能做到。真正让人卡住的是下一步:这张图能不能真的拿去用。产品图能不能有商业摄影的质感?海报上的中文文案会不会…

2026/7/31 3:18:34 阅读更多 →
Arteris NoC芯片互联技术培训:从架构到实战的完整指南

Arteris NoC芯片互联技术培训:从架构到实战的完整指南

1. 项目概述:为什么芯片互联技术值得你投入时间学习?如果你在芯片设计、验证或者系统架构领域摸爬滚打了一段时间,大概率会听到过“Arteris”这个名字。它不是什么新的编程语言,也不是某个EDA工具,而是一家在芯片互联&…

2026/7/31 3:18:34 阅读更多 →
INMS架构:LLM多智能体系统中的高效内存共享方案

INMS架构:LLM多智能体系统中的高效内存共享方案

1. INMS论文核心思想解析这篇论文提出了一种名为INMS(Inter-Agent Memory Sharing)的创新架构,专门针对基于大型语言模型(LLM)的多智能体系统中的内存共享问题。传统LLM智能体在协作时面临的最大痛点就是每个智能体都是…

2026/7/31 3:17:34 阅读更多 →

日新闻

物理复制比逻辑复制好在哪?数据库复制原理详解

物理复制比逻辑复制好在哪?数据库复制原理详解

数据库复制是把主库数据同步到备库的机制,分为逻辑复制和物理复制两种。逻辑复制传输的是 SQL 语句或行变更事件,物理复制传输的是存储引擎底层的物理日志。阿里云 PolarDB(云原生数据库)采用物理复制,在同步延迟、数据…

2026/7/31 0:00:34 阅读更多 →
BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bilib…

2026/7/31 0:00:34 阅读更多 →
有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

当前,游戏行业的“DataAI融合”已从概念验证进入价值落地阶段。根据IDC 2025年数据,中国AI游戏云市场规模已达18.6亿元;同时,游戏研发环节AI渗透率高达86%,生成式AI内容普及率超过50%。面对庞大的市场,游戏…

2026/7/31 0:00:34 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/29 15:00:03 阅读更多 →

月新闻