~,555555
码龄6年
关注
提问 私信
  • 博客:172,564
    社区:1
    问答:61
    172,626
    总访问量
  • 96
    原创
  • 2,216,201
    排名
  • 210
    粉丝
  • 1
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2019-03-03
博客简介:

weixin_44717047的博客

查看详细资料
个人成就
  • 获得218次点赞
  • 内容获得74次评论
  • 获得635次收藏
  • 代码片获得1,995次分享
创作历程
  • 2篇
    2023年
  • 13篇
    2022年
  • 74篇
    2021年
  • 10篇
    2020年
成就勋章
TA的专栏
  • 前端学习
    84篇
  • git
    1篇
  • C++
    6篇
兴趣领域 设置
  • 前端
    javascripttypescriptnode.jsvue.jsreactjses6前端
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

186人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

前端如何将node.js 和mongodb部署到linux服务器上

遇到问题就多查询,上总有解决办法的。就算完全搞砸了,也没有关系,不管你用的哪个云服务器厂商的服务器都可以一键重装系统再次尝试。实在实在不行,还可以通过宝塔面板来可视化操作。
原创
发布博客 2023.04.03 ·
754 阅读 ·
2 点赞 ·
2 评论 ·
0 收藏

前端文件上传虽然看似简单,但也有一些小坑。

尽管这里面每一点都很简单,但可能写的时候总可能会忘记,当然如果你使用别人封装好的,肯定就没有这些无聊的问题。
原创
发布博客 2023.04.03 ·
544 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Service Worker学习笔记

Service Worker介绍使用判断浏览器是否支持serviceWorker,接着注册serverWorker的js文件。if ('serviceWorker' in navigator) { window.addEventListener('load', () => { navigator.serviceWorker.register('../serviceworker.js').then(res => { console.log(res);
原创
发布博客 2022.05.17 ·
608 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

await-to-js源码学习

众所周知 await可以帮我省略一些无聊的 .then代码,但是这玩意没有自带.catch功能。如果不用 await的话,我们直接可以Promise.catch捕获错误,不用写try catch。// let result = { success: true, data: [] };let result = { success: false, error:'something went wrong' };new Promise((resolve, reject) => { if (res
原创
发布博客 2022.04.30 ·
676 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

VScode快捷键学习

作为前端开发,我用vscode1年多了,但却从来没有仔细去了解过vscode有哪些快捷键,总是使用鼠标去进行操作。所以,我就用这篇博客记录我学到的vscode快捷键。ps:我是windows电脑,不知道mac的操作是怎样的。编辑区文件切换ctrl + tab当前已打开窗口的多个文件切换ctrl + pageup 或者ctrl +pagedown切换到前一个已经打开的文件或者后一个拆分ctrl + /将当前文件作为一个新的编辑区ctrl + shift + 5拆分终端侧边栏ctrl+
原创
发布博客 2022.04.13 ·
348 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

typescript中type和interface的区别

type和interface功能是基本一样的,唯一的区别就是type声明的不能继续追加新的属性,interface是可以拓展的。typetype Point ={ x:number, y:numberlet point:Point = {x:10,y:10};interfaceinterface Person{ name:string, age:number}let jiaqi :Person = { name:'jiaqi', age:3
原创
发布博客 2022.04.02 ·
712 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

TypeScript 函数重载

函数重载如果想要TypeScript实现一个加法函数,它可以实现字符串的拼接和数字相加。当然,用JS实现非常简单,因为JS不关心你的类型,但是用TS实现就稍微复杂一点了。法一:利用联合类型+类型判断function add(num1: string | number, num2: string | number) { if (typeof num1 === 'number' && typeof num2 === 'number') { return num1
原创
发布博客 2022.03.24 ·
4096 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

TypeScript 学习笔记

TS介绍TypeScript 是一个开源的、渐进式包含类型的 JavaScript 超集,由微软创建并维护。创建它的目的是让开发者增强 JavaScript 的能力并使应用的规模扩展变得更容易。它的主要功能之一是为 JavaScript 变量提供类型支持。在 JavaScript 中提供类型支持可以实现静态检查,从而更容易 地重构代码和寻找 bug。最后,TypeScript 会被编译为简单的JavaScript 代码。要开始使用 TypeScript,我们需要用 npm 来安装它。npm in
原创
发布博客 2022.03.24 ·
1339 阅读 ·
4 点赞 ·
0 评论 ·
3 收藏

JSON.parse(字符串)得到的对象比直接定义的一个对象更加快

原因:对于js引擎来说,JSON能够非常容易地被解析对于js解析器来说,JSON.parse()不就是相当于只带有一个参数的call语句。解析JSON时遇到大括号,只有两种情况,一种就是对象,另外一种就是无效的JSON。但是,在js中,看到大括号就有非常多的情况。const x = 12;let y = ({x}); //创建了一个对象字面量let y = ({x}) = {x:32}; //此处是解构赋值const x = 100;let y = ({x}) => x;.
原创
发布博客 2022.03.16 ·
768 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

path.resolve()与path.join()对比

当前目录为D:
ode,以下为对比测试:const path = require("path");console.log(path.resolve("a")); //D:
ode\aconsole.log(path.join("a")); // aconsole.log(path.resolve("/a")); //D:\aconsole.log(path.join("/a")); //\aconsole.log(path.resolve("/a",'b')); //D:\a\bco
原创
发布博客 2022.03.15 ·
398 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Express学习笔记

快速上手a. 安装express,当前使用的是4.17版本。在终端中输入以下命令:yarn add expressb. 创建一个’app.js’文件,引入express,创建express实例,并监听端口3000。//app.jsconst express = require('express');const app = express();app.listen(3000, () => { console.log('running at http://localhost:30
原创
发布博客 2022.01.31 ·
1465 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

extract-text-webpack-plugin已经过时,如何实现将CSS文件单独抽离

打包之后,我们并不喜欢css和js混杂在一起,而是希望单独抽离出来,在加载html之前就加载css。这时我们可以使用webpack的插件。extract-text-webpack-plugin上次更新的时候还是4年前。作者也提示说,已经过时了,我们应该使用MiniCssExtracPlugin。MiniCssExtracPlugin基于Webpack5,我们需要用webpack5才能正常使用。与 extract-text-webpack-plugin 相比:异步加载没有重复的编译(性能)
原创
发布博客 2022.01.22 ·
848 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

3种方法实现JS对象深拷贝

相信大家总是在各大博客中看到手写深拷贝这类题目,今天就分享3种方法实现它。什么是深拷贝?let a = { name: 'jiaqi', age: 100 };let b = a;我们知道对象是引用类型,它的值是地址,这个地址指向了堆中真正的数据。如果直接将对象a赋值给b(b=a),此时a和b就会引用同样的数据。如果b修改某个属性,则也会修改a中属性。b.name = '嘉琪';console.log(a.name); //嘉琪因此,如果想要实现两个对象互不影响(深拷贝),就得逐一复制它
原创
发布博客 2022.01.08 ·
4775 阅读 ·
5 点赞 ·
1 评论 ·
12 收藏

JSX学习笔记

React.createElement()过于繁琐,且非常不直观,无法一眼看出所描述的结构。JSX简介JSX是 JavaScript XML的简写,表示在 JavaScript代码中写ⅩML(HTML)格式的代码。优势:声明式语法更加直观、与HTML结构相同,降低了学习成本、提升开发效率。为什么脚手架中可以使用JSX语法?JSX不是标准的 ECMAScript语法,它是 ECMAScript的语法扩展。需要使用babel编译处理后,才能在浏览器环境中使用create-react-app脚手
原创
发布博客 2022.01.05 ·
779 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏

React组件基础(一)

React组件介绍组件是Reat的一等公民,使用 React就是在用组件组件表示页面中的部分功能,组合多个组件实现完整的页面功能。特点:可复用、独立、可组合React创建组件的两种方式使用函数创建组件函数组件:使用JS的函数(或箭头函数)创建的组件约定一:函数名称必须以大写字母开头约定二:函数组件必须有返回值,表示该组件的结构如果返回null,表示不渲染任何内容// 函数组件function Hello() { return ( <div>这是一个组件<
原创
发布博客 2022.01.05 ·
718 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

JS手写事件总线

APIeventBus: 包含所有功能的事件总线对象eventBus.on(eventName, listener): 绑定事件监听eventBus.emit(eventName, data): 分发事件eventBus.off(eventName): 解绑指定事件名的事件监听, 如果没有指定解绑所有原理使用 on 方法来绑定发生某种事件后应该执行的回调函数。使用 emit 触发这个事件,并给这个事件的回调函数传入数据。代码class EventBus { constructor(
原创
发布博客 2021.12.28 ·
553 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

改变gitee(github)仓库名,导致无法push,解决方法。

准备push的时候,发现 not found。这时我想了起来,我给gitee上面的仓库改了名字。解决方法git remote remove origin //移除原来仓库地址git remote add origin 新仓库地址xxx //添加新仓库地址git push -u origin master //第一次设置默认的远程分支注意:只是第一次需要 git push -u origin master ,之后就直接gitpush了。...
原创
发布博客 2021.12.27 ·
1431 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

JS原型继承,盗用构造函数,组合继承,原型式继承

继承ECMA-262 把原型链定义为 ECMAScript 的主要继承方式。其基本思想就是通过原型继承多个引用类型的属性和方法。原型链重温一下构造函数、原型和实例的关系:每个构造函数都有一个原型对象,原型有一个constructor 属性指回构造函数,而实例有一个内部指针指向原型。如果原型是另一个类型的实例呢?那就意味着这个原型本身有一个内部指针指向另一个原型,相应地另一个原型也有一个指针指向另一个构造函数。这样就在实例和原型之间构造了一条原型链。function Animal() { this.
原创
发布博客 2021.12.17 ·
1176 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

JS手写flat函数

flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。const arr = [1, 2, [3, 4, [5, 6, [7]]], 8];console.log(arr.flat(Infinity)); //[1,2,3,4,5,6,7,8]console.log(arr.flat(2)); //[1,2,3,4,5,6,[7],8]手写flat函数:function flat(arr,n) { let times = 0; //利
原创
发布博客 2021.12.15 ·
1375 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

JavaScript 对象属性的迭代与判断

hasOwnPropertyhasOwnProperty可以用来判断是否为实例属性还是原型属性。const obj1 = { happy:100}// 以obj1原型创建obj2const obj2 = Object.create(obj1);obj2.happy;//100 可以访问到原型的happy属性obj2.hasOwnProperty('happy'); //obj2 自身没有happy属性obj1.hasOwnProperty('happy'); //obj1拥有happy
原创
发布博客 2021.12.14 ·
938 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多