自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(209)
  • 收藏
  • 关注

原创 2022-11-25 虚拟机centos入门(1)-navicat

还是比较简单的。

2022-11-30 17:12:29 1020 1

原创 12-09 零碎的知识

Typescript【译】TypeScript的Record类型说明细数 TS 中那些奇怪的符号

2022-03-12 13:12:35 1264 1

原创 2021-07-10 yarn.lock版本依赖策略

简介npm/yarn lock真香在项目开发过程中,经常会出现yarn.lock里出现两个版本的情况,比如:autoprefixer@^9.8.0, autoprefixer@^9.8.6: version "9.8.6" resolved "http://registry.npm.qima-inc.com/autoprefixer/download/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" integ

2022-01-01 15:53:31 1247

原创 2021.10.21零碎的知识点

js相关try…catch无法捕获的错误总体来说就是异步错误,类似下面这种情况是无法捕获的:// setTimeout中的错误try { setTimeout(function () { throw new Error('error in setTimeout'); // 200ms后会把异常抛出到全局 }, 200);} catch (err) { console.error('catch error', err); // 不会执行}// Promise中的错误t

2021-12-04 16:41:13 114

原创 2021-08-29 杂七杂八的学习

抽象语法树ASTAST系列(一): 抽象语法树为什么抽象小程序相关渲染层和逻辑层

2021-10-14 17:44:13 83

原创 2021-06-30 node脚本开发常用的npm包

node开发常用的npm包感觉node开发还是挺依赖各种包的,毕竟脚本开发,简洁和效率为上,整理下会用到的包1.lodashLodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库。lodash官方文档对于工具库我的想法是,不要依赖三方库,能自己用原生js实现最好。记一下备用2.chalkchalk npm文档chalk按我的理解是在node环境下,可以在terminal输出多种颜色样式的字符串。增强可读性const chalk = require("chalk")

2021-07-25 14:23:45 348

原创 2021-04-12 小程序的入门学习第一弹

参考资料官方开发者文档【2万字长文】深入浅出主流的几款小程序跨端框架原理

2021-07-01 20:41:13 82

原创 2021-04-30 node/typescript零散的学习

类型检查1.这是因为 TypeScript 只会在编译时对类型进行静态检查,如果发现有错误,编译的时候就会报错。而在运行时,与普通的 JavaScript 文件一样,不会对类型进行检查。所以我们在ts里一般只对接口传参加上类型检查,因为传参是前端可控往后端传的,是可以通过ts检查的。而后端传回的数据一般透传出去,我们无法检验jest2.jest官方文档...

2021-06-11 16:00:58 91

原创 2021-04-11 react 官网井字棋进阶功能分析

目录基础功能代码展示完成进阶功能1.在游戏历史记录列表显示每一步棋的坐标,格式为 (列号, 行号)2.在历史记录列表中加粗显示当前选择的项目3.使用两个循环来渲染出棋盘的格子,而不是在代码里写死(hardcode)基础功能代码展示按照官网的一步步走下来,多次状态提升后,将state提到了最上层的Game组件进行管理,那么底下的子组件全都是受控组件 不拥有自己的state,代码如下:class Game extends React.Component { /* 为了实现历史数组 再次进行状态提升

2021-04-12 13:11:12 413

原创 2021-04-08 react官方文档的相关学习第一弹(核心概念)

目录参考资料文档知识点JSX相关Props相关参考资料React官方文档自己的github官网教程井字棋文档知识点JSX相关JSX既不是字符串,也不是HTML,而是一个表达式,内部编译的时候 实际上是执行了React.createElement()操作Babel 会把 JSX 转译成一个名为 React.createElement() 函数调用。以下两种示例代码完全等效:const element = ( <h1 className="greeting"> He

2021-04-11 15:52:19 88

原创 2021-3-29 前端性能优化相关措施

性能优化措施1.减少重排和重绘 ,避免多次直接操作DOM,可以采用document.createDocumentFragment()文档片段,直接替换 只会触发一次。修改样式的时候,如果存在多次修改同一元素的宽高等,建议直接赋值class只会触发一次重排缓存布局高度属性,比如offset/clientHeight这种,会重置渲染队列,强制触发重排参考 前端性能优化之重排和重绘2.减少HTTP请求1.虚拟DOM和操作真实DOM性能哪个好?简单来说,虚拟DOM的最大优势,不是性能好,而是优化

2021-03-29 19:09:11 103

原创 2021-03-15 有赞一面二面总结

1.伪类和伪元素的区别2.很小的文字 垂直居中3.http2.0相比1.1的优化点4.https加密过程5.常见的继承 class extends 是用了哪种继承6.$slot的具体用法7.描述vue的生命周期 以及说明keep-alive 加了什么生命周期 有什么用8.map和weak-map9.css的盒子模型和弹性盒模型的区别 以及如何转化...

2021-03-29 19:08:21 347

原创 2021-3-9 es6 promise webpack相关学习

1.es6 module import 和require区别阮一峰es6简单来说,就是require是动态加载的,就是运行时加载,而es6的import是静态加载的,性能更高,而且可以加入静态分析es6引入了import()方法来解决无法动态加载的问题,传参是路径,比如路由的懒加载就是用的这个方法。2.手写一个简单的支持同步异步的Promise// 手写一个简易版的promise 用es6的class形式/* 现在基本可以实现简单的同步代码,实现异步->当resolve在setTo

2021-03-22 20:42:29 201 1

原创 2021-03-14 字节商业化技术面试

1.二分查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数二分查找 nums 中的 target,如果目标值存在返回下标,否则返回 -1。function test(arr,target,low,high){ if(low>=high){ return -1 } if(arr[low]===target){ return low } if(arr[high]===target

2021-03-15 15:24:54 633

原创 2021-3-13 网易二面分析

1.package-lock.json的作用2.同源策略的解释 不同端口是否同源3.webpack打包过程,plugin是在哪一步处理

2021-03-14 19:22:30 164

原创 2021-3-11 网易一面分析

1.http缓存 keep-alive2.首屏优化3.如果打包文件过大、过慢 热更新过慢 如何优化4.Symbol类型,能否当对象的key,以及能否被for in 以及keys()遍历到5.BFC6.Promise await 场景7.session cookie token 防止 CSRF攻击的几种方法8....

2021-03-14 11:27:30 121

原创 2021-03-05 字节二面分析

1.vue 的 :key 为什么不能用数组索引 从原理分析2.生成1000个不重复的六位验证码字符串数组:1.单个验证码6位数字0-92.一次1000个验证码。数组形式返回3.单次生成一批不能重复function random():string[]{}3.funciton add(a,b)=>Promise.resolve(a+b)实现 function addUp(arr) 累加返回结果...

2021-03-10 15:30:09 167 1

原创 2021-3-04 浏览器的多进程 session,cookie和token 等相关学习

1.chrome浏览器的多进程 多线程模型Chrome的多进程架构浏览器渲染进程的多线程机制2.session,cookie和token究竟是什么session,cookie和token究竟是什么简单来说就是HTTP协议是无状态的,所以服务端和客户端的通信要首先鉴权,在此基础上才能保持资源的共享。所以引入了session+cookie。session和cookie都是服务端生成返回给客户端的,一般是在登录那条接口的response header里的set-cookie中返回,客户端收到后,后续的访

2021-03-09 10:55:11 280 3

原创 2021-2-28 字节前端一面分析总结

1.分析下面代码并说结果function Person(name) { this.name = name;}Person.prototype.print = function() { return this.name;};Person('abc'); ①console.log(name) // abcconst a = new Person('abc').print.call({});console.log(a); // undefinedconst fn = () =>

2021-03-02 19:44:58 132

原创 2021-1-27 清空知乎收藏夹的总结第一弹

如何用最简单的方式解释依赖注入?依赖注入是如何实现解耦的?面向抽象编程大概意思是就是减少依赖,避免强耦合。在易变的部分,提前设置抽象类,让其他部分依赖于抽象类,而不是一个具体的实例,这样修改的时候 只需要修改抽象类即可。...

2021-02-02 15:27:50 150

原创 12-23 从输入url到获得页面经历的所有事情(越细越好)

一次HTTP请求经历了什么?使用DNS协议获取服务器IP地址。把请求的数据组织成HTTP的Start Line、Body 和 Headers, HTTP的数据组织完成,发送到TCP处理。TCP进行三次握手建立连接(也可以复用已建立的连接)。HTTP的数据可能会分成多个TCP Segment(TCP的数据包叫TCP Segment), 每个TCP Segment都会加上TCP的Headers,以实现TCP的能力(保证可靠),之后TCP Segment发送到IP层。(可选)如果使用了HTTPS,这里会

2021-01-04 15:47:53 157

原创 2020-11-24 Python爬虫学习第三弹-多线程爬虫

参考博客Python3多线程threading介绍1.threading 模块Python3的多线程操作推荐使用import threading,封装了Thread类 较方便,性能较好具体API和使用方法参考博客,里面有详细的介绍,就不复读了2.对于join()方法的理解博客里也有详细介绍,总结一下就是,让主线程能够等待子线程执行完毕后,再进行操作。举例代码如下:# 打印结果如下,主线程和子线程的先后是没有关系的,各自执行import threadingimport timedef

2020-11-24 20:18:07 116

原创 2020-10-23 python爬虫学习第二弹

selenium框架学习selenium 中文文档1.什么是seleniumselenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9,10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。selenium是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium RemoteControl)和测

2020-10-27 11:03:11 155 1

原创 2020-10-22 python爬虫学习第一弹

参考资料之前断断续续学了一段时间的python基础,发现到了最后没有实践,连入门都算不上。所以这次找了本《Python爬虫从入门到实践》进行学习1.python基础练习题由于之前有编程基础,所以这段就po几个练习题代码,还都挺简单的:# 打印9*9乘法表def multiplication(): for x in range(1,10): for j in range(1,10): print('%s * %s = %s'%(x,j,x*j))m

2020-10-22 15:22:11 156

原创 2020-10-13 Typescript学习第三弹

extends和implements的区别extends与implements的使用和区别extends 是继承父类,只要那个类不是声明final或者定义为abstract就能继承,JAVA中不支持多重继承,继承只能继承一个类,但implements可以实现多个接口,用逗号分开就行了。class A extends B implements C,D,E(){ //class子类名extends父类名implements接口名}同理,在Typescript里也可以使用。interface

2020-10-14 11:05:55 197

原创 2020-10-12 TypeScript学习第二弹

泛型

2020-10-12 16:54:38 77

原创 2020-09-16 TypeScript学习第一弹

Typescript学习1.起步 安装ts-node 一步编译及运行,不会生成js文件首先全局安装ts-nodenpm i ts-node -g执行ts-node命令即可ts-node hello.ts2.与webpack集成 { test: /\.(ts|tsx)?$/, use: [{ loader: "ts-loader", options: { // disable

2020-09-28 20:12:17 110

原创 2020-08-27 使用项目的.eslintrc.js来进行代码格式化

vue对象的新属性触发响应式变化1.在template上绑定的模板变量,必须在data()里声明并初始化之后,才是响应式的。精确到对象的某个属性,必须声明并初始化如果是取值并需要添加新属性,此时肯定无法初始化,那么使用Vue.$set实例方法向响应式对象中添加一个 property,并确保这个新 property 同样是响应式的,且触发视图更新。它必须用于向响应式对象上添加新 property,因为 Vue 无法探测普通的新增 property举例:比如我使用element-ui的树组件,取到了

2020-09-15 16:06:59 994

原创 正则表达式的相关学习

参考廖雪峰的python教程—正则表达式测试import reprint(re.match(r'\d{3}\-?\d{3,8}$', '010-33334233'))注意 除了^符号是前匹配,其他限制符号如$、+、*均是后匹配 要分块看同时 一般的特殊符号均需要/进行转义,避免与限制符号混淆import redef is_valid_email(addr): result = re.match(r'^[0-9a-zA-Z\_\.]+\@[0-9a-zA-Z]+\.com'

2020-07-14 19:27:39 93

原创 python3学习第三弹----多线程学习

参考廖雪峰的python教程搞定python多线程和多进程多线程由于任何进程默认就会启动一个线程,我们把该线程称为主线程,主线程又可以启动新的线程,Python的threading模块有个current_thread()函数模拟代码:import timeimport threading# 假定这是你的银行存款:balance = 0def change_it(n): # 先存后取,结果应该为0: global balance balance = balan

2020-07-14 16:35:15 94

原创 vue-cli3 打包配置 学习

vue-cli3 打包配置vue-cli3搭建项目之webpack配置vue-cli3官方文档

2020-07-07 13:48:33 301

原创 关于循环里怎么正确使用await进行异步操作

背景今年因为忙(其实是懒),没怎么写博客,加上工作内容比较low 遇到的问题也low,实在没啥好写的,这次终于碰上了个有趣的问题 赶紧来写一波问题因为协议经常不知道为什么不给定批量删除的接口,只能自己循环单个删除,下面这种在map循环里进行await 实际上是同步操作的 aIdList.map(async (item) => { await _WebSDK.WSDK_SetDeviceConfig( 'deleteIO

2020-06-16 11:45:09 5815

原创 关于使用python,批量给组内多语言json文件添加字符串的初步探究

简介在日常的项目开发中,若项目支持多国语言,那么常常会需要把新增的json字符串(未翻译)批量添加到各国语言对应的多语言json文件中,防止因为未添加多语言字符串而导致海外版的web渲染异常等问题。然而,现在组内的多语言处理工具暂未有批量添加指定json字符串的功能,我在自学python的文件操作方法过程中,写了一个能简单实现功能的python脚本源码# 用户输入文件名,脚本遍历当前路径下的所有文件夹和文件,匹配到包含该文件名的所有文件,并添加到json文件中import osimport js

2020-05-29 16:22:03 309

原创 git-commit 规范

commit 标识标识描述feat新增一个功能fix修复一个 Bugdocs文档变更(更新文档、Demo)ci发布控件版本style代码风格变更(不影响功能,解决代码冲突、eslint 校验修改等)refactor重构(即不是新增功能,也不是修改 bug 的代码变动)chore开发工具变动(框架改动、eslint 规则变动等)...

2020-05-06 15:14:01 124

原创 3.7备忘录

备忘录4.2基线:1.事件里的上传中心有bug,见消息记录要改2.rs485不能写死要改3.三月三日提供3.5寸英文字符串4.这周五提供海外门铃机排期5.4.0基线:1.这周前改掉号码配置页的缺陷,解决方法见周智中消息记录...

2020-05-06 15:13:05 122

原创 python 学习编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出绝对路径。

源码对着几个库方法自己撸出来的,适用性和优化做的太差了。好绕# 编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出绝对路径。import osdef printStrFile(arg): main_dir = [x for x in os.listdir('.')] file_list = [x for x in main_di...

2020-04-24 16:23:43 639

原创 4-20 python相关学习

python读写文件python json.dumps() json.dump()的区别dumps是将dict转化成str格式,loads是将str转化成dict格式。dump和load也是类似的功能,只是与文件操作结合起来了看自己写的代码:import jsondict={'foo':'233','kiri':'233'}with open('./pytest.json','w...

2020-04-23 19:01:50 116

原创 4-3 杂七杂八的学习

Response的Header属性详解浅谈http中的Cache-Controlonbeforeunload window.onbeforeunload = async event => { console.log(233); await _oPlugin.stopTalk(); await _oPl...

2020-04-08 11:21:00 133

原创 组内4.2.1框架http报文超时时间设置

timeout目前组内ajax走的http报文 超时时间为默认30s this.options = { timeout: 30000, //超时时间,默认30000ms data: null, //发送的数据,没有则为null async: true, //是否异步 complete:...

2020-03-20 16:34:49 390

原创 python的继续学习

现在,我们要给动物再加上Runnable和Flyable的功能,只需要先定义好Runnable和Flyable的类:```pythonclass Runnable(object): def run(self): print('Running...')class Flyable(object): def fly(self): print('F...

2020-03-13 15:52:59 113

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除