互联网络

深拷贝总结

1. JSON.stringfy做深拷贝会丢失信息JSON.parse(JSON.stringfy(obj))做深拷贝,会有以下问题1.日期变字符串2.RegExp、Error对象变空对象,3.函数,undefined会丢失4.NaN、Infinity和-Infinity会变成null5.构造函数会丢失,变为...
代码星球·2020-06-29

多叉树到指定节点的路径

基本上是使用深度优先遍历的套路,以下方法获取的是沿途的所有节点exportfunctiongetPathNodesByKey(root,stack,fCompare){letb=false;if(root!=null){stack.push(root);if(fCompare(root)){returntrue}var...
代码星球·2020-06-29

跨域简便解决方法

jsonp和CORS等解决方案都依赖于后端协助,前端要独立解决跨域,可以使用以下方法。1.webpack-dev-server添加代理在开发模式使用webpack-dev-server的情况下,可以在devServer的配置中添加proxy,可以直接进行转发,解决跨域,具体可以参考详解Webpack-dev-serve...
代码星球·2020-06-29

前端工程环境变量设置方法

前端工程的环境变量,通常会使用cross-env在package.json的scripts中设置"scripts":{"serve":"cross-envNODE_ENV=developmentMETA_BASE=meta.dev.comvue-cli-serviceserve--open","build":"cros...

nginx安装和命令

1.nginx安装1.1mac上安装brewsearchnginxbrewinstallnginx1.2windows上安装下载nginx.zip,解压到D盘,发送快捷方式到桌面2. nginx命令启动      macsudo nginx...
代码星球·2020-06-29

常用样式收藏

/*滚动条样式*/::-webkit-scrollbar{width:8px;height:8px;}::-webkit-scrollbar-thumb{background-color:#CDD9E6;border-radius:2em;}::-webkit-scrollbar-track{background:rg...
代码星球·2020-06-29

npm link用法总结

npmlink用来在本地项目和本地npm模块之间建立连接,可以在本地进行模块测试具体用法:1.项目和模块在同一个目录下,可以使用相对路径npmlink../module2.项目和模块不在同一个目录下cd到模块目录,npmlink,进行全局linkcd到项目目录,npmlink模块名(package.json中的name...
代码星球·2020-06-29

promise简单实现

functionisFunction(fn){returnObject.prototype.toString.call(fn)==='[objectFunction]';}letST={pending:0,resolved:1,rejected:2}functionPromise(fn){letself=this;se...
代码星球·2020-06-29

宏任务和微任务

javasript宿主环境有事件循环,异步任务会被加入到任务队列,任务队列分为两种,宏任务(macroTask)和微任务(microTask)。宏任务队列会有多个,微任务队列只有一个。每次事件循环,先执行微任务队列,执行完后,会选择一个宏任务队列的一个任务执行,然后再次执行微任务队列,完成后再挑一个宏任务队列一个任务执...
代码星球·2020-06-29

git rebase使用场景

1.当前分支落后拉取后,整理commit,使得提交历史为直线gitpull=gitfetch+gitmergegitpull--rebase=gitfetch+gitrebase其实--rebase的目的只有两个:1.让多个人在同一个分支开发的提交节点形成一条线,而不是多条线2.让你提交的commit在该分支的最前面当...
代码星球·2020-06-29

Puppeteer最大化显示,分辨率自适应

Puppeteer自适应分辨率,可以将defaultViewport设为null, 启动的时候还是半屏显示,点击最大化按钮,可以最大化显示。这样分辨率能够自适应操作系统。具体可看:https://github.com/GoogleChrome/puppeteer/issues/3688#issuecommen...

正则表达式匹配第一次出现的字符

单个字符解决方法,假设字符为Xvarreg=/^[^X]*(X)/,   match= str.match(reg);match[1]就是第一个X,但是这样做几乎没有意义,第一个X还是一个X。match[0]还有点意义,第一个X之前的内容(包含X)....

svg的viewport和viewbox

svg中视区重要的概念1. viewport 视口,相当于显示器屏幕2. viewbox  视区,相当于在屏幕上截取一小块,放大到整个屏幕,就是特写的效果3. preserveAspectRatio 规定viewbox与viewport的对齐方式和缩...
代码星球·2020-06-29

svg复用方式<g>, <defs>, <symbol>, <use>

svg复用元素的方式主要有<g>,<defs>,<symbol>,<use>1.<g>group,分组,定义一组元素,初始不可见<gid="group"fill="red">   <rectx="10"y="10...
代码星球·2020-06-29

svg描边动画原理

1.svg基本图形有7种矩形<rect>圆形<circle>椭圆<ellipse>线<line>折线<polyline>多边形<polygon>路径<path>其中,path可以绘制任意图形2. svg描边动画原理svg的描边...
代码星球·2020-06-29