前端小知识
文章平均质量分 74
前端碎碎念
请相信,这世界上真的有人过着你想要的生活;
愿你我既可以朝九晚五,又可以浪迹天涯;
最后,祝大家头发旺盛(笑脸)
展开
-
使用Lerna搭建业务组件库
Lerna 是一个用来优化托管在 git\npm 上的多 package 代码库的工作流的一个管理工具,可以让你在主项目下管理多个子项目,从而解决了多个包互相依赖,且发布时需要手动维护多个包的问题。原创 2024-03-19 23:04:27 · 3728 阅读 · 0 评论 -
vite打包流程和原理
vite打包原理原创 2024-03-15 11:35:12 · 1509 阅读 · 0 评论 -
OSI笔记
传输中,在每一层需要加上不同的头部信息。原创 2023-10-20 17:44:42 · 218 阅读 · 0 评论 -
git rebase与git merge区别,git reset与git revert的区别
git rebase:操作前:(两条分支)操作后:在bugfix分支上进行git rebase master:(bugfix 相对于分支 master 进行变基)git merge:操作后git merge master:merge 会把两个分支合并在一起,形成一个新的 commit 提交适用场景:git rebase后呈线性结构,git merge后呈树形结构不要在公共分支使用rebase本地和远端对应同一条分支,优先使用rebase,而不是merge下游分支更新上游分支原创 2022-04-18 16:35:20 · 423 阅读 · 0 评论 -
关于webpack原理和优化那些事儿
webpack配置(webpack.config.js)let path = require('path');module.export = { mode: 'development', // 生产环境,开发环境 entry: { index: './src/index.js' // 入口 }, output: { filename: '[name].js', // 出口 path: path.join(__dirname, './dist') }}loader是什么?原创 2020-12-07 15:18:10 · 193 阅读 · 1 评论 -
类数组转数组
类数组: 拥有length属性 也拥有索引 但是没有数组具有的方法。常见的有argument和获取DOM后返回的结果(getElementsByClassName , TagName)function func(a, b, c){ //不是继承于Array,但是有着数组的某些方法 console.log(arguments instanceof Array); //...原创 2019-09-13 18:36:14 · 267 阅读 · 0 评论 -
执行上下文和执行域
执行上下文执行域作用域try…catcheval()函数作用域全局环境借鉴木易杨博客原创 2019-09-13 00:32:53 · 343 阅读 · 0 评论 -
移动端适配方案,px,em,rem的区别以及关于rem的计算
px:相对长度单位,像素是相对于显示器屏幕的分辨率而言的em:相对单位,大小不固定,继承父级元素的大小rem:相对单位,大小不固定,相对于根元素htmlhtml {font-size: 62.5%; } /* 公式16px*62.5%=10px */ //此时页面中1rem = 10px;<p style={font-size: 1.2rem}>我是12px<...原创 2019-07-27 22:18:03 · 399 阅读 · 0 评论 -
display:none和visiblity:hidden以及opacity:0的区别
display: none不占用空间设置transition属性无效改变属性值会引发页面产生重排visibility: hidden元素会被隐藏,但是不会消失,依然占据空间。不会触发绑定的事件修改属性值会引起重绘设置treansition属性无效opacity: 0只是透明度为100%,元素隐藏,所以依然占据空间可以使用transition属性也可以触发绑定的...原创 2019-07-27 20:54:08 · 594 阅读 · 0 评论 -
JS例题。
前言:这些都是自己日常收藏的觉得比较复杂一点、题目挺绕的、大家日常容易忽略的小知识点的题目,我看到题目执行结果的时候,上面的表情包形象的表达了我当时的心情,大佬觉得简单就请不要嘲笑小生,请绕道走。原创 2019-07-25 12:00:20 · 436 阅读 · 1 评论 -
jquery源码解析
站位原创 2019-04-09 18:11:07 · 92 阅读 · 0 评论 -
react框架实现原理
站位原创 2019-04-09 18:10:33 · 565 阅读 · 0 评论 -
事件循环和宏任务(Node环境和浏览器)
时间循环event loop宏任务和微任务setTimeout为什么会比promise里面的迟缓执行?以下代码就说明该问题。&amp;amp;amp;lt;script&amp;amp;amp;gt; let oJ = 12; console.log('1--'); let pro = new Promise(function(resolve, reject){ console.log('2--'); setTimeou...原创 2019-01-22 18:22:45 · 559 阅读 · 1 评论 -
原型链一文通
原型链的问题:_proto_和prototype的区别???实现一个原型链继承???instanceOf是如何进行判断对象类型的??原创 2019-01-28 17:08:58 · 356 阅读 · 1 评论 -
关于webpack打包文件
文件目录dist是webapck打包后文件的输出目录src是文件目录webpack.config.js是webpack的配置文件webpack.config.jsconst path = require('path');module.exports = { entry: './src/app.js', //输出路径 output: { path: ...原创 2019-03-26 19:45:05 · 366 阅读 · 0 评论 -
数组中常用的方法总结
低阶Array.from,将一个类似数组的对象中创建一个数组实例;有俩个参数 Array.from('foo'); //['f','o','o'];高阶参考:MDN原创 2019-04-10 21:31:53 · 229 阅读 · 1 评论 -
从浏览器地址栏输入URL到展示页面经历了什么?
本文主要写url到页面的具体过程,中间可能会涉及到缓存机制。过程首先,当输入url,浏览器会先从本地硬盘的host文件,找域名对应的IP,如果有的话直接就会使用host文件中的IP,如果没有的话,就会继续向上寻找。找到本地DNS服务器一般由网络接入服务器商提供(中国电信,中国移动)。本地DNS服务器查询它的缓存记录,有记录直接返回,没有记录会采取递归的方式,向根服务器进行查询,根服务器...原创 2019-04-01 21:37:04 · 5572 阅读 · 1 评论 -
你需要知道的DNS的那些事儿
DNS查询的俩种方式递归:局部DNS服务器负责向其他DNS服务器进行查询,一般是先向该域名的根域服务器查询,再由根域名服务器一级级向下查询。最后得到的查询结果返回给局部DNS服务器,再由局部DNS服务器返回给客户端。迭代:局部DNS服务器不是自己向其他DNS服务器进行查询,而是把能解析该域名的其他DNS服务器的IP地址返回给客户端DNS程序,客户端DNS程序再继续向这些DNS服务器进行查询...原创 2019-04-01 21:37:40 · 211 阅读 · 0 评论 -
XSS攻击原理和防御措施
跨站脚本攻击:它值得是恶意攻击者往web页面里插入恶意的html代码,当用户浏览该页时,嵌入web页面的html就会被执行,从而达到恶意用户的特殊目的。XSS攻击的原理1、黑客对含有漏洞的服务器发起XSS攻击;2、诱使用户打开收到攻击的服务器URL;3、用户在浏览器中打开URL,恶意代码执行。XSS的类型持久型:也叫“存储型XSS”,只要是将XSS代码发送到服务器,所以在下一次请求页...原创 2019-03-31 18:49:00 · 2383 阅读 · 0 评论 -
关于CSRF攻击的原理以及防御措施
CSRF攻击的原理1、用户M打开浏览器,访问受信任的网站A,输入用户名和密码登录网站A;2、在用户信息通过验证之后,网站A产生cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;3、用户未推出网站A之前,在同一浏览器打开一个新的tab访问网站B;4、网站B接受到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点网站A;5、浏览器接受到这些请求后...原创 2019-03-31 14:56:33 · 1221 阅读 · 1 评论 -
函数柯里化
定义可以把接受多个参数的函数变为只接受一个参数(第一个)以及返回余下参数和结果的新函数。目的怎么实现实现场景原创 2019-04-03 20:20:17 · 103 阅读 · 0 评论 -
webpack一文通
站位原创 2019-04-09 18:09:58 · 1893 阅读 · 1 评论 -
js的创建对象几种常用方法
创建一个对象的几种方式:对象字面量和使用关键字Objectlet obj1 = {};let obj2 = new Object();优点: 简单缺点: 它们都是用了同一个接口创建很多对象,会产生大量的重复代码,就是如果你有100个对象,那你要输入100次很多相同的代码。为解决该问题,所以出现了工厂模式,将创建对象的过程封装在函数体中,需要创建的时候就调用该函数。工厂模式...原创 2019-01-23 20:48:25 · 190 阅读 · 0 评论