【机器学习】前沿探索,如何让前端开发更加搞笑

news2024/11/20 21:20:31

在当今数字化时代,机器学习的崛起为前端开发带来了巨大的机遇和挑战。随着人工智能和数据科学的不断进步,前端工程师不再局限于传统的界面设计和交互体验,而是开始探索如何将机器学习技术融入到他们的工作中,以创造更加智能、个性化的用户体验。

然而,尽管机器学习技术的发展为前端开发带来了无限可能,但同时也面临着诸多挑战,如算法复杂性、数据处理和模型部署等方面的技术难题。为了解决这些挑战,前端开发者需要不断探索和创新,在这个过程中,js-tool-big-box等工具成为了他们的得力助手,为他们提供了丰富的功能和便捷的开发体验。本文将深入探讨机器学习在前端开发中的应用前景,并结合js-tool-big-box工具,探讨如何让前端开发更加高效。

 

目录

引言

1 安装js-tool-big-box工具包

1.1 安装

1.2 截至目前的方法集合 

2 时间日期类 

2.1 更灵活的年月日时分秒

2.2 日期时间转换

2.3 个性的时间组合 

2.4  某个时间距离现在

2.5  平年还是闰年

2.6 指定月份的天数 

2.7 属相

2.8 获取指定年份的法定节假日 

3 页面存储类

3.1 获取浏览器url参数值

3.2 设置cookie

3.3 获取cookie

3.4 删除cookie

3.5 设置localStorage

3.6 获取localStorage的值

4 事件相关

 4.1 防抖

4.2 节流

5 Number相关方法学习

5.1 千分号分割

5.2  判断是否大于0

5.3 判断是否大于0的整数

5.4 生成指定范围内的随机数

5.5  生成指定位数的随机数

5.6 数字转小写中文

5.7 数字转大写中文

6 字符串相关方法学习

6.1 字符串反转

6.2 横岗转小驼峰

6.3 横岗转大驼峰

6.4 版本号比较

6.5 获取字符串字节长度

6.6 生成UUID

6.7 通过身份证号获取生日、性别和年龄

6.8 字符串中间加星号遮盖

7 正则验证相关方法学习

7.1 邮箱验证

7.2 手机号验证

7.3 url格式验证

7.4 身份证号码格式验证

7.5 IP地址格式验证

7.6 邮政编码验证

7.7 是否Unicode字符

8 发送请求相关

8.1 发送JSONP跨域请求

9  data数据相关方法学习

9.1 获取幸运者

9.2 复制文字到剪贴板

9.3 数组去重

10 浏览器相关 

10.1 判断是否手机端浏览器

10.2 检测某个元素是否处于可视范围内

最后


引言

在前端开发中,JavaScript是必不可少的一部分,而掌握各种常用的公共方法更是提升开发效率和代码质量的关键。无论你是初学者还是资深开发者,了解并熟练运用这些方法都能让你的代码更加简洁、高效。本篇博客将为你详细汇总并解析最全的JavaScript公共方法,涵盖数组、对象、字符串、日期等各个方面的常用技巧。希望通过这篇文章,能为你的前端开发之路提供有力的帮助,成为你开发过程中不可或缺的参考指南。

下面开始啦,建议收藏起来,前端开发项目必备。

1 安装js-tool-big-box工具包

1.1 安装

我已经将所有公共方法,按模块的形式,集成到了js-tool-big-box工具包中,大家不比担心安装后会使项目体积变大,不会的。

执行安装命令:

npm i js-tool-big-box

npm包地址:js-tool-big-box - npm (npmjs.com) 包中提供了工具的学习文档地址以及作者

1.2 截至目前的方法集合 

 那么js-tool-big-box这个方法库现在都有哪些公共方法可以供大家使用了呢,我们看一下下面的图就知道啦

2 时间日期类 

想要使用时间日期类的公共方法,需要先在项目中导入 timeBox 对象,所有的时间日期类方法都在这个对象下面,引入代码如下:

import { timeBox } from 'js-tool-big-box';

2.1 更灵活的年月日时分秒

    const year = timeBox.getMyYear(null, '年');
    console.log(year); // 2024年
    const yearALB = timeBox.getMyYear(null, 'سنة');
    console.log(yearALB); // 2024سنة
    const month = timeBox.getMyMonth(null, '月');
    console.log(month); // 05月
    const date = timeBox.getMyDate(null);
    console.log(date); // 23
    const hour = timeBox.getMyHour(null, 'hour');
    console.log(hour); // 20hour
    const minutes = timeBox.getMyMinutes(null, 'min');
    console.log(minutes); // 10min
    const seconds = timeBox.getMySeconds(null, '秒');
    console.log(seconds); // 10秒

2.2 日期时间转换

    const dateTime1 = timeBox.getFullDateTime(null, 'YYYY-MM-DD', '/');
    console.log(dateTime1); // 2024/05/22
    const dateTime2 = timeBox.getFullDateTime(null, 'YYYY-MM-DD hh:mm', '~');
    console.log(dateTime2); // 2024`05`22 20:11
    const dateTime3 = timeBox.getFullDateTime(null, 'YYYY-MM-DD hh:mm:ss');
    console.log(dateTime3); // 2024-05-22 20:11:22

2.3 个性的时间组合 

const hourShow= timeBox.getMyDate(null, '点');
const minShow= timeBox.getMyMinutes(null, '分');
const timeShow = `${hourShow} ${minShow}`; // 8点 22分

2.4  某个时间距离现在

const unitObj = {
      beforeUnit: 'before',
      afterUnit: 'after',
      yearUnit: 'year',
      monthUnit: 'month',
      dateUnit: ' days ',
      hourUnit: 'hour',
      minutesUnit: 'min',
      secondUnit: 'sec'
    }
    const showData = timeBox.getDistanceNow('1908-12-02 06:00:00', unitObj); // 溥仪登基啦
    console.log('溥仪登基详细时间===', showData); 
    const showData1 = timeBox.getDistanceNow('2030-04-19 20:15:59');  // 移民火星啦
    console.log('人类移民火星详细时间===', showData1);

注意:这个方法返回的是详细的时间对象,需要甄别使用哪个具体的详细信息。

2.5  平年还是闰年

    const leapYear = timeBox.getLeapYear('2024-12');
    console.log('=-=2024年是', leapYear ? '闰年': '平年'); // 闰年
    const leapYear1 = timeBox.getLeapYear('2019'); 
    console.log('=-=2019年是', leapYear1 ? '闰年': '平年'); // 平年
    const leapYear2 = timeBox.getLeapYear(null); 
    console.log('=-=今年是', leapYear2 ? '闰年': '平年'); // 闰年

2.6 指定月份的天数 

      const days = timeBox.getDaysInMonth('2023', 11);
      console.log('2023年12月的天数===', days); // 31
      const days1 = timeBox.getDaysInMonth(null, 1);
      console.log('今年2月的天数===', days1);   // 29

2.7 属相

      const bornAnimal = timeBox.getAnimalOfBorn('2025');
      console.log('2025年出生的人属相是:==-==', bornAnimal); // snake
      const bornAnima2 = timeBox.getAnimalOfBorn('1990-10-25');
      console.log('1990年出生的人属相是:==-==', bornAnima2); // house

2.8 获取指定年份的法定节假日 

const holiday2024 = timeBox.getHoliday('2024');
console.log('----', holiday2024);

注意:这个方法只能获取2024年以后的法定节假日显示 

3 页面存储类

 页面存储包含获取浏览器url的参数,cookie设置、获取、删除等,localStorage的设置,获取等。想使用存储类的公共方法,需要先在项目中导入 storeBox 对象:

import { storeBox } from 'js-tool-big-box';

3.1 获取浏览器url参数值

以  http://127.0.0.1:8080/#/404?type=text&go2=232323&q=my2521 为例

const param = storeBox.getUrlParam('q');
console.log('获取到q的参数为:::', param); // my2521

3.2 设置cookie

storeBox.setCookie('school', '我的中学', 1000*10);
storeBox.setCookie('name', 'zhangsan');

3.3 获取cookie

const myCookie1 = storeBox.getCookie('school');
console.log('我设置过的school是::', myCookie1); // 我的中学

3.4 删除cookie

storeBox.deleteCookie('name');
const myNmaeCookie = storeBox.getCookie('name');
console.log('我已把name这个cookie删了::', myNmaeCookie);

3.5 设置localStorage

storeBox.setLocalstorage('today', '星期一', 1000*6);

3.6 获取localStorage的值

const today = storeBox.getLocalstorage('today');
console.log('6秒后获取的值===', today);

4 事件相关

 目前事件相关的公共方法主要是有防抖和节流2个,需要现在项目中导入 eventBox 对象:

import { eventBox } from 'js-tool-big-box';

 4.1 防抖

<template>
  <div>
    <input @keyup="handleChange" v-model="inputVal" />
  </div>
</template>
 
<script>
import { eventBox } from 'js-tool-big-box';
 
export default {
  name: 'dj',
  data () {
    return {
      inputVal: ''
    }
  },
 
    created() {
        this.myDebounce = eventBox.debounce((data) => {
          this.sendAjax(data);
        }, 2000);
      },
 
methods: {
    handleChange(event) {
      const val = event.target.value;
      this.myDebounce(val);
    },
    sendAjax(data) {
      console.log('发送时间::', new Date().getTime());
      console.log('发送请求:', data);
    },
  }
}
</script>

4.2 节流

<script>
import { eventBox } from 'js-tool-big-box';
 
export default {
  name: 'dj',
  data () {
    return {
      inputVal: ''
    }
  },
  created() {
    this.myThrottle = eventBox.throttle((data) => {
      this.sendAjax(data);
    }, 2000);
  },
  methods: {
    handleChange(event) {
      const val = event.target.value;
      this.myThrottle(val);
    },
    sendAjax(data) {
      console.log('发送时间::', new Date().getTime());
      console.log('发送请求:', data);
    },
  }
}
</script>

5 Number相关方法学习

工具库也提供了Number相关的方法学习,需要先在项目中导入 numberBox  对象:

import { numberBox } from 'js-tool-big-box';

5.1 千分号分割

const num1 = numberBox.formatNumberWithCommas(13498345.333, 2);
console.log('num1转化后:', num1); // 13,498,345.33
const num11 = numberBox.formatNumberWithCommas(13498345.333);
console.log('num11转化后:', num11); // 13,498,345

5.2  判断是否大于0

const num2 = numberBox.isGreater0('-33.23');
    console.log('-33.23是大于0的数字吗?', num2); // false
    const num3 = numberBox.isGreater0('33.23s'); 
    console.log('33.23s是大于0的数字吗?', num3); // false
    const num33 = numberBox.isGreater0(2024); 
    console.log('2024是大于0的数字吗?', num33); // true

5.3 判断是否大于0的整数

const num4 = numberBox.isGreater0Integer('33.23');
    console.log('33.23是大于0的整数吗?', num4);  // false
    const num5 = numberBox.isGreater0Integer(99);
    console.log('99是大于0的整数吗?', num5);  // true

5.4 生成指定范围内的随机数

// 生成80到100的随机整数
const num6 = numberBox.getRandomNumber(80, 100);
console.log('80到100的随机整数::', num6); // 86
// 生成50到56并带有2位小数的随机数
const num7 = numberBox.getRandomNumber(50, 56, 2);
console.log('50到56并带有2位小数的随机数::', num7); // 55.57

5.5  生成指定位数的随机数

// 生成一个4位的随机数字
const num66 = numberBox.generateUniqueRandomNumber(4);
console.log('生成的4位的随机数字:', num66); // 6257
// 生成一个6位的随机数字
const num77 = numberBox.generateUniqueRandomNumber(6);
console.log('生成的6位的随机数字:', num77); // 371420

5.6 数字转小写中文

const num8 = numberBox.numberToChinese('456788.12');
    console.log('看一下456788.12的中文小写展示:', num8);
    const num9 = numberBox.numberToChinese(122456788.5);
    console.log('看一下122456788.5的中文小写展示:', num9);

5.7 数字转大写中文

const num10 = numberBox.numberToChinese(22456788.5, 'upper');
console.log('看一下22456788.5的中文大写展示:', num10);

6 字符串相关方法学习

 字符串相关的方法呢,js-tool-big-box工具库对外提供了 stringBox 对象,可供开发者使用:

import { stringBox } from 'js-tool-big-box';

6.1 字符串反转

const string1 = stringBox.reverseString('Hello, World!');
console.log('需要反转的字符串::', string1);

6.2 横岗转小驼峰

const string2 = stringBox.hyphenToCamelCase('my-class-name', 'small');
console.log('小驼峰转换::', string2);

6.3 横岗转大驼峰

const string3 = stringBox.hyphenToCamelCase('my-class-name', 'big');
console.log('大驼峰转换::', string3);

6.4 版本号比较

const versionResult = stringBox.compareVersions('1.0.21', '1.0.12');
console.log('1.0.21和1.0.12比较:', versionResult); // 1
const versionResult1 = stringBox.compareVersions('1.2.21', '1.3.12');
console.log('1.2.21和1.3.12比较:', versionResult1); // -1
const versionResult2 = stringBox.compareVersions('1.1.3', '1.1.3.1');
console.log('1.1.3和1.1.3.1比较:', versionResult2); // -1
const versionResult3 = stringBox.compareVersions('1.1.3', '1.1.3');
console.log('1.1.3和1.1.3比较:', versionResult3); // 0

6.5 获取字符串字节长度

注意:这里不是获取字符串的长度,是字节长度,注意区分

const str1 = 'Hello world!!!';
const str2 = '我是The first one,😶 HaHa~';
const str1ByteLength = stringBox.byteLength(str1);
const str2ByteLength = stringBox.byteLength(str2);
console.log('Hello world!!!的字节长度是:', str1ByteLength); // 14
console.log('我是The first one,😶 HaHa~:', str2ByteLength); // 30

6.6 生成UUID

const myUUID1 = stringBox.generateUUID();
console.log('获取到的uuid值第一次', myUUID1);
// 8a556cd8-4c53-38dd-149d-38a32fe27cb9

6.7 通过身份证号获取生日、性别和年龄

const cardStr = '53010219200508011XF';
const idCardObj = stringBox.getInfoByIdCard(cardStr);
console.log('此人身份详情:', idCardObj);

6.8 字符串中间加星号遮盖

const cardStr = '53010219200508011X';
const phone = '13344445555';
const cardStrMask = stringBox.maskString(cardStr, 4, 4, '*', 6);
const phoneMask = stringBox.maskString(phone, 4, 4, '*', 3);
console.log('身份证号加星后为:', cardStrMask);
console.log('手机号加星后为:', phoneMask);

7 正则验证相关方法学习

之前我们经常需要写正则表达式做一些验证,现在好了,我们有了公共方法,再也不用四处找去了,工具库提供了 matchBox  对象

import { matchBox } from 'js-tool-big-box';

7.1 邮箱验证

const email1 = '232322@qq.com';
const email2 = '232322qq.ff';
const emailResult1 = matchBox.email(email1);
const emailResult2 = matchBox.email(email2);
console.log('emailResult1验证结果:', emailResult1); // true
console.log('emailResult2验证结果:', emailResult2); // false

7.2 手机号验证

const phone1 = '13813313212';
    const phone2 = '2381331320';
    const phoneResult1 = matchBox.phone(phone1);
    const phoneResult2 = matchBox.phone(phone2);
    console.log('phoneResult1验证结果:', phoneResult1); // true
    console.log('phoneResult2验证结果:', phoneResult2); // false

7.3 url格式验证

const url1 = 'https://aa.test.com/user?q=3';
    const url2 = '//33.co m/ user';
    const urlResult1 = matchBox.url(url1);
    const urlResult2 = matchBox.url(url2);
    console.log('urlResult1验证结果:', urlResult1); // true
    console.log('urlResult2验证结果:', urlResult2); // false

7.4 身份证号码格式验证

const idCard1 = '120333199007712322x';
    const idCard2 = '220333299007712322';
    const idCardResult1 = matchBox.idCard(idCard1);
    const idCardResult2 = matchBox.idCard(idCard2);
    console.log('idCardResult1验证结果:', idCardResult1); // false
    console.log('idCardResult2验证结果:', idCardResult2); // true

7.5 IP地址格式验证

const ip1 = '192.168.1.111';
    const ip2 = '333.168.299.0';
    const ipResult1 = matchBox.ip(ip1);
    const ipResult2 = matchBox.ip(ip2);
    console.log('ipResult1验证结果:', ipResult1); // true
    console.log('ipResult2验证结果:', ipResult2); // false

7.6 邮政编码验证

const postal1 = '075616';
    const postal2 = '956s6';
    const postalResult1 = matchBox.postal(postal1);
    const postalResult2 = matchBox.postal(postal2);
    console.log('postalResult1验证结果:', postalResult1); // true
    console.log('postalResult2验证结果:', postalResult2); // false

7.7 是否Unicode字符

    const code1 = 'A';
    const code2 = '😶';
    const code3 = '🧚‍♂️';
    const code1Result = matchBox.checkUnicode(code1);
    const code2Result = matchBox.checkUnicode(code2);
    const code3Result = matchBox.checkUnicode(code3);
    console.log('A是不是一个Unicode character?', code1Result);
    console.log('😶是不是一个Unicode character?', code2Result);
    console.log('🧚‍♂️是不是一个Unicode character?', code3Result);

8 发送请求相关

 目前正常的Ajax还没有整理,fetch有自己的请求方法,很好用,所以这里只是封装了JSONP请求的公共方法,js-tool-big-box对外供了 ajaxBox 对象供开发者使用:

import { ajaxBox } from 'js-tool-big-box';

8.1 发送JSONP跨域请求

ajaxBox.sendJSONP('http://127.0.0.1:3000/users/bar', 'callback', function(data){
      console.log('获取到的JSONP请求数据', data);
});

9  data数据相关方法学习

data这里就内容会慢慢比较多,逐渐去丰富,工具库对外提供了 dataBox 方法供开发者使用:

import { dataBox } from 'js-tool-big-box';

9.1 获取幸运者

const peopleData = '张三0, 张三1, 张三2, 张三3, 张三4, 张三5, 张三6, 张三7, 张三8, 张三9, 张三10, 张三11, 张三12, 张三13, 张三14, 张三15, 张三16, 张三17, 张三18, 张三19, 张三20, 张三21, 张三22, 张三23, 张三24, 张三25, 张三26, 张三27, 张三27, 张三29, 张三30, 张三31, 张三32, 张三33, 张三34, 张三35, 张三36, 张三37, 张三38, 张三39, 张三40';

this.luckPeople = dataBox.luck(peopleData, 3);

9.2 复制文字到剪贴板

const text = '我在CSDN写工具,js-tool-big-box';
dataBox.copyText(text, () => {
        // 复制成功后的业务逻辑
      }, () => {
        // 复制异常后的业务逻辑
      }

9.3 数组去重

const arr1 = [1, 2, 3, 5, 1, 2, 3, 4];
const arr2 = [1, 2, 'jim', '1', 'tom', 1, '张三', 2, '3'];
const uniqueArr1 = dataBox.uniqueArray(arr1);
const uniqueArr2 = dataBox.uniqueArray(arr2);
console.log('去重后的arr1的值为:', uniqueArr1);
// [1, 2, 3, 5, 4]
console.log('去重后的arr2的值为:', uniqueArr2);
// [1, 2, 'jim', '1', 'tom', '张三', '3']

10 浏览器相关 

公共方法,怎么能少的了浏览器相关的内容呢,js-tool-big-box对外提供了 browserBox 对象供开发者使用:

import { browserBox } from 'js-tool-big-box';

10.1 判断是否手机端浏览器

const checkBrowser = browserBox.isMobileBrowser();
console.log('当前是手机端浏览器吗?', checkBrowser);

 

10.2 检测某个元素是否处于可视范围内

mounted() {
    window.addEventListener('scroll', this.handleScroll);
  },
  methods: {
    handleScroll() {
      const isInScreen = browserBox.isElementInViewport('.demo');
      console.log('.demo在可视区域内吗?', isInScreen);
    },
  }

最后

今天的javascript公共方法就总结到这里,已经上万字了,我为大家总结了js-tool-big-box的详细学习API和讲解说明,大家需要的可以去学习哦 :js-tool-big-box学习文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1682853.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

适合暑期做的赚钱副业兼职有哪些?盘点6个适合暑期做的赚钱副业

随着夏日的热浪滚滚而来&#xff0c;学生们纷纷结束了忙碌的学期&#xff0c;迎来了盼望已久的暑假。你是否想过在这个长假里&#xff0c;除了享受阳光、海滩和美食外&#xff0c;还能顺便赚点零用钱呢&#xff1f; 今天&#xff0c;就为大家揭秘六大神秘副业&#xff0c;让你在…

【漏洞复现】海康威视综合安防管理平台 iSecure Center applyCT fastjson 远程代码执行

0x01 漏洞名称 海康威视综合安防管理平台 iSecure Center applyCT fastjson 远程代码执行 0x02 漏洞影响 0x03 搜索引擎 app"HIKVISION-综合安防管理平台"0x04 漏洞详情 POST /bic/ssoService/v1/applyCT HTTP/1.1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Wi…

程序语言基础知识

文章目录 1.程序设计语言2. 程序设计语言的特点和分类3. 编译程序&#xff08;编译器&#xff09;的工作原理4. 程序语言的数据成分4.1 数据成分4.2 运算成分4.3 控制成分4.4 传输成分 1.程序设计语言 低级语言&#xff1a;机器语言和汇编语言。 机器语言&#xff1a;二进制代…

正确可用--Notepad++批量转换文件编码为UTF8

参考了:Notepad批量转换文件编码为UTF8_怎么批量把ansi转成utf8-CSDN博客​​​​​​https://blog.csdn.net/wangmy1988/article/details/118698647我参考了它的教程,但是py脚本写的不对. 只能改一个.不能实现批量更改. 他的操作步骤没问题,就是把脚本代码换成我这个. #-*-…

浅谈后端整合Springboot框架后操作基础配置

boot基础配置 现在不访问端口8080 可以吗 我们在默认启动的时候访问的是端口号8080 基于属性配置的 现在boot整合导致Tomcat服务器的配置文件没了 我们怎么去修改Tomcat服务器的配置信息呢 配置文件中的配置信息是很多很多的... 复制工程 保留工程的基础结构 抹掉原始…

yolov8训练自己数据集时出现loss值为nan。

具体原因目前暂未寻找到。 解决办法 将参数amp改成False即可。 相关资料&#xff1a; https://zhuanlan.zhihu.com/p/165152789 https://github.com/ultralytics/ultralytics/issues/1148

声纹识别在无人机探测上的应用

无人机在民用和军事领域的应用越来越广泛。然而&#xff0c;随着无人机数量的增加&#xff0c;"黑飞"现象也日益严重&#xff0c;对公共安全和隐私构成了威胁。因此&#xff0c;开发有效的无人机探测与识别技术变得尤为重要。及时发现黑飞无人机的存在进而对其型号进…

自动驾驶决策规划算法——二次规划

自动驾驶决策规划算法第二章第二节(中) 参考线算法_哔哩哔哩_bilibili 动态规划开辟的凸空间如下&#xff0c;两条橙色线之间&#xff1a; 黄色的点就意味着L的上下界&#xff0c;物理意义是当轨迹ss1时&#xff0c;L的范围应该是(Lmin1,Lmax1)之间&#xff0c;这个范围就是开辟…

逻辑漏洞靶场通关

会员中心注册新用户test&#xff0c;密码123123 会员中心注册新用户name&#xff0c;密码abcabc 管理员账号admin&#xff0c;密码123456 1.普通账号间水平越权漏洞测试 一个网站登录普通账号test后修改信息时进行抓包 在重发器中修改普通账号test为普通账号name&#xff0c;并…

给树莓派配置静态IP地址

第一步&#xff1a;查找默认网关 打开windowr&#xff1b;输入cmd&#xff0c; 输入 最后一行就是默认网关 ipconfig第二步&#xff1a;确定分配好给树莓派的IP地址 要注意&#xff1a;&#xff08;1&#xff09;静态ip地址与路由器网段保持一致&#xff08;2&#xff09;与…

Linux操作系统最著名的两大系列Red Hat和Debian

Linux操作系统可以根据其背后的项目或社区分为不同的系列&#xff0c;其中最著名的两大系列是Red Hat系列和Debian系列。 1.著名的两大系列是Red Hat和Debian Red Hat系列&#xff1a; Red Hat Enterprise Linux (RHEL)&#xff1a;这是Red Hat公司推出的企业级操作系统&#…

数据库同步软件,天不生PanguSync万古如长夜

在信息时代的海洋中&#xff0c;数据是那永不熄灭的灯塔&#xff0c;照亮了科技发展的航道。然而&#xff0c;随着数据的膨胀和应用场景的多样化&#xff0c;如何确保这些宝贵资源在不同平台、不同设备间实时更新、保持一致性&#xff0c;便成了一道亟待解决的难题。于是&#…

SSM【Spring SpringMVC Mybatis】—— SpringMVC

目录 1、初识SpringMVC 1.1 SpringMVC概述 1.2 SpringMVC处理请求原理简图 2、SpringMVC搭建框架 2.1 搭建SpringMVC框架 3、RequestMapping详解 3.1 RequestMapping注解位置 3.2 RequestMapping注解属性 3.3 RequestMapping支持Ant 风格的路径&#xff08;了解&#…

摄像头应用测试

作者简介&#xff1a; 一个平凡而乐于分享的小比特&#xff0c;中南民族大学通信工程专业研究生在读&#xff0c;研究方向无线联邦学习 擅长领域&#xff1a;驱动开发&#xff0c;嵌入式软件开发&#xff0c;BSP开发 作者主页&#xff1a;一个平凡而乐于分享的小比特的个人主页…

单向无头链表实现

目录 1. 为什么要有链表&#xff1f; 2. 链表的种类 3. 具体功能实现 &#xff08;1&#xff09;节点结构体定义 &#xff08;2&#xff09;申请节点 &#xff08;3&#xff09;尾插 &#xff08;4&#xff09;尾删 &#xff08;5&#xff09;头插 &#xff08;6&#…

CST电磁软件工作室时域求解器和频域求解器介绍【仿真入门】

时域求解器vs.频域求解器 不同情形下选择Time Domain Solver还是Frequency Domain Solver? 三维电磁仿真支持的具有代表性的两种求解器-Time Domain Solver和Frequency DomainSolver以不同的方式计算出仿真结果&#xff0c;所以根据仿真的情形可以选择性地使用两个Solver。 …

BCD编码Java实现

最常用的BCD编码&#xff0c;就是使用"0"至"9"这十个数值的二进码来表示。这种编码方式&#xff0c;在称之为“8421码”&#xff08;日常所说的BCD码大都是指8421BCD码形式&#xff09;。除此以外&#xff0c;对应不同需求&#xff0c;各人亦开发了不同的编…

图论-最短路算法

1. Floyd算法 作用&#xff1a;用于求解多源最短路&#xff0c;可以求解出任意两点的最短路 利用动态规划只需三重循环即可&#xff08;动态规划可以把问题求解分为多个阶段&#xff09;定义dp[k][i][j]表示点i到点j的路径&#xff08;除去起点终点&#xff09;中最大编号不超…

React类组件生命周期详解

在React的类组件中&#xff0c;从组件创建到组件被挂载到页面中&#xff0c;这个过程react存在一系列的生命周期函数&#xff0c;最主要的生命周期函数是componentDidMount、componentDidUpdate、componentWillUnmount 生命周期图例如下 1. componentDidMount组件挂载 如果你…

【NLP】词性标注

词 词是自然语言处理的基本单位&#xff0c;自动词法分析就是利用计算机对词的形态进行分析&#xff0c;判断词的结构和类别。 词性&#xff08;Part of Speech&#xff09;是词汇最重要的特性&#xff0c;链接词汇和句法 词的分类 屈折语&#xff1a;形态分析 分析语&#…