自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小木Blog

个人学习记录

  • 博客(55)
  • 收藏
  • 关注

原创 微信小程序源码扒取

有时候看到一个有趣的小程序,总想去研究研究。就像把看看他们的源码。本文记录如何获取一个小程序的源码。获取小程序的包原理:小程序的包形如:xxxx.wxapkg。在加载一个小程序后,会将小程序的包拉到本地,所以可以通过在本地把wxapkg包拿到,再反编译出来。以下为window按照安卓模拟器的方式。1.下载模拟器并登录微信模拟器:http://mumu.163.com/360/安装微信,ER文件管理设置ER文件管理器的root权限3. 在微信中打开一个小城,并在ER文件管理器中找到对应

2022-01-10 01:09:53 3523

原创 css非常简单的打码效果

发现一个有趣的非常简单的打码效果<style> .hide-content { color: transparent; text-shadow: #111 0 0 6px; user-select: none; }<style>

2021-11-30 20:20:04 901

原创 npm adduser的使用方法

npm adduser 功能添加注册表用户账户npm adduser使用npm adduser [--registry=url] [--scope=@orgname] [--always-auth] [--auth-type=legacy]aliases: login, add-usernpm adduser说明创建或验证<username>在指定注册表中命名的用户,然后将凭据保存到.npmrc文件。如果未指定注册表,则将使用默认注册表。用户名,密码和电子邮件是从提示中读取的。

2021-06-20 17:50:03 15534

原创 钢琴音符大全

文章地址地址:http://www.360doc.com/content/17/0501/23/42520212_650171362.shtml休止符音阶

2021-06-06 19:17:40 961

原创 npm access详解

npm access使用npm access public [<package>]npm access restricted [<package>]npm access grant <read-only|read-write> <scope:team> [<package>]npm access revoke <scope:team> [<package>]npm access 2fa-required [<

2021-06-06 13:30:53 991

转载 npm version使用方法

npm version使用方法version每个npm包都有一个package.json,如果要发布包的话,package.json里面的version字段就是决定发包的版本号了。version字段是这样的一个结构: ‘0.0.1’, 是有三位的版本号。分别是对应得version里面的:major, minor, patch。也就是说当发布大版本的时候会升级为1.0.0, 小版本是0.1.0, 一些小修复是0.0.2。npm version为了方便用户更改版本号,npm有npm version这

2021-06-01 01:43:20 2527

原创 eslint配置详解

前言最近在实习期间犯了几个很弱智的错,一方面是自己的不小心, 另一方面也是项目的代码规范性检查不好。为了实现项目代码的规范性,降低出错率。 自己特别提出在commit之前加上一个eslint的代码检查,以确包上线代码中不会出现很低级的错误。开始git有一种钩子机制, 例如这里我们即将用到的pre-commit.首先我们需要安装pre-commit: npm install pre-comm...

2019-04-30 09:44:56 5544

原创 一个项目中的common.js文件,仅以做收藏

(function () { var oldAjax = jQuery.ajax; var EMPTY = {}; var defaultOpts = { contentType: 'application/json', dataType: 'json', processData: false, beforeSend: function (jqXHR, ...

2019-01-25 17:00:20 1567

原创 Vue源码内部函数调用流程图

前言最近在努力学习Vue源码, 其中发现了两个可以学习的文档:Vue技术内幕Vue技术揭秘如果对Vue的源码比较感兴趣, 建议看这两个地方观后感如下是历时接近3周得来得内部调用流程图, 也算是对这3周得一个交代...

2019-01-25 16:50:33 1137

原创 js中的继承

前言在js中, 对象就是键值对的集合.形如:{键1:值1,键2:值2}. 看起来很简单的样子, 但是提起笔想要在js中使用面向对象的方式来编程时, 就有点力不从心了.始终感觉对js的面向对象的继承理解不是很清楚.在红宝书中有很多的继承方式. 无奈理解不到位, 记也记不住. 最近看了gulp源码,发现它就是把Gulp写成了构造函数的形式.地址:Gulp其中在Gulp内部调用了Undertaker...

2019-01-23 17:11:59 453

原创 突然发现的F11全屏 API

如下:&lt;!DOCTYPE html&gt;&lt;html lang="en"&gt;&lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Title&lt;/title&gt;&lt;/head&gt;&lt;style&gt; .test { wi

2018-11-02 16:00:54 816

原创 python3 爬取网易云音乐的热评

前言最近对网络爬虫有点感兴趣, 就简单的学习了一下python。, 并打算以爬取网易云音乐热评作为一个小项目练习。思路爬虫的思路其实很简单, 就是像浏览器一样发起一个请求, 获取相应的数据, 然后对获取的数据进行分析, 获取到我们想要的数据。本身也是第一次写爬虫, 不能撸起袖子就干, 还是需要去看看别人的经验。 所以, 我也看了几篇爬取网易云音乐的爬虫, 链接。说白了就是跟着他们的博客写的...

2018-10-14 15:09:14 923 1

原创 简单实现Vue数据双向绑定

前言在现在的mvvm框架中, 有一个很普遍的功能 就是数据的双向绑定, 即响应式。那么这样的功能是怎样的实现的呢? 在阅读了染陌同学的《剖析 Vue.js 内部运行机制》后, 在这里复习一下。实现原理比较简单, 就是通过Object.defineProperty将需要响应式的对象的属性设置为get和set, 并在get所在闭包中, 通过dep对象进行依赖收集; 在set中调用dep中的not...

2018-09-24 14:32:14 371

转载 从chrome源码看浏览器如何加载资源

对浏览器加载资源有很多不确定性, 例如css/font的资源的优先级比img高, 资源的优先级是怎么确定的呢?资源的优先级又是如何影响到加载的先后顺序的?有几种情况可能会导致资源被阻止加载?通过源码可以找到答案。 此次源码解读基于Chromium64下面通过加载资源的步骤, 一次说明。1. 开始加载通过以下命令打开chromium, 同时打开一个网页chrominm -- re...

2018-09-23 15:58:07 3234

转载 浏览器加载资源的方式

https://juejin.im/entry/59f6081e51882554f6661403

2018-09-22 20:03:00 594

原创 小米秋招2019算法题——求下雨时能积多少水

题目给出一组数组, 表示一组宽为1的小方块的高度。 求下雨时, 可以积水多少一张很有灵魂的图:示例:输入: [0,1,0,2,1,0,1,3,2,1,2,0]输出: 6我的答案function MiTwo(arr){ //一层一层的思考 let arr1 = [...new Set(arr.concat([]).sort(function(a,b){return...

2018-09-20 22:22:10 641

原创 2019小米秋招算法题——无限数列

题目有一个无限数列: 1,2,3,3,4,4,4,5,5,5,5,5,…, 相同的数字排成一行。给出数列中的第n个数, 得出该数所在行之前行的数字个数。例如:输入:6结果为:4我的答案该题目, 数字有点少, 如果没有意识到, 还真的比较难发现。1一个, 2一个, 3两个, 4三个, 5五个有没有发现这其实一个是斐波那契数列。所以可以得到6八个。现在回过来看示例中的输入与输出,...

2018-09-20 21:41:47 905

原创 字节跳动第四场笔试算法题——简化路径

题目一个unix格式的路径, 将其简化例如/a/ //简化结果为: /a/a/././b/../../c简化结果为:/c我的答案看到这种字符串一类的题目, 就忍不住想用正则表达式完成, 如下function getPath(str) { let reg1 = /\.\//g let reg2 = /(\/){2,}/g let reg3 = /...

2018-09-20 21:24:54 1494

原创 2019届阿里巴巴模拟题在线编程题二

题目 不使用任何其他库, 实现一个方法, 用于表格排序, 如下&lt;table border="1px"&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;name&lt;/th&gt; &lt;th&gt;age&lt;/th&gt; &lt;/tr&gt;

2018-09-05 18:37:22 430

原创 2019届阿里巴巴模拟题在线编程题一

题目 实现一个 css示例:// 参考规则const rules = { 'a': { height: 0, width: 10 }, '#page .content a': { height: 5 }, '#page a': { height: 10, di...

2018-09-05 17:47:59 828

原创 记录自己第一个npm 包的发布

前言之前一直对发布一个包很感兴趣, 但是不知道发些什么内容, 最近工作的内容需要用到正则表达式. 对于正则, 会写的人, 想写啥写啥, 不会的人就只能各种搜索.于是我就简单的写了几个常用的正则表达式, 作为一个模块, 发布到了npm上, 内容简单, 也算是给自己练练手.过程这里只简单写了一些过程, 如下:编写一个模块注册一个npm帐号通过年npm adduser 添加npm帐...

2018-08-30 09:22:58 157

原创 我的vscode设置

前言之前一直在使用windows开发, 最近跑到了centos上, 编辑器使用了vscode,之前搞自己的编辑器搞了很久, 结果又需要重新搞. 为了使用background这个插件, 以管理员的方式运行了vscode, 那些设置又没有了, 所以直接把之前非管理员运行的vscode的设置复制粘贴了以下, 妙好! 所以感觉有必要把自己的vscode的设置记录以下, 以便以后方便.如下{...

2018-08-29 10:38:18 487

原创 跳动字节19校招第二次在线笔试--第一题

题目:大概题意如下: 出去玩, 需要分组, 每个人写好自己认识的人的名单,如果A的名单里有B, B的名单里有A, 表示两个人相互认识; A的名单里有B,B的名单里有C, A可以和C间接认识。 分组的规则是, 如果两个人相互认识, 或者能间接认识, 就可以分为一组。 现给出人N个, 和他们的名单, 求出能最少分多少个组。 用例如下:var n = 10;//一共10个人...

2018-08-25 12:49:55 2063

原创 Gulp简单学习

Gulp 特点易于使用构建快速插件高质量易于学习安装全局安装: npm install –global gulp作为项目开发依赖安装: npm install –save-dev gulp运行gulp在项目根目录创建一个名为gulpfile.js的文件使用gulp命令运行: gulp (运行默认的任务)原理在gulpfile.je或gulp...

2018-08-08 14:44:24 208

原创 node.js模块文件查找

如何查找node.js中, 我们加载一个模块需要使用require命令。 其中这个传入require中的字符串可以分为三类: 1. require(‘fs’) 加载系统核心模块, 该模块在程序一开始就加载进入到内存中, 直接使用, 不需要在加载。2. require(‘./test.js’) 相对路径 , 在相对当前路径,查找test.js文件3. ...

2018-07-28 16:17:14 2978

原创 javascript模块化

前言在目前的前端开发中, 常用的模块化主要是commonJS和ES中的Module。本文也主要是谈谈这两种模块化方式。commonJS该模块化方案主要用于node.js的后台服务器开发。 由于加载文件时, 很快就不存在异步问题。该方案中, 使用exports和module.exports导出模块。该模块导出为一个对象。 使用require方法导入模块。 在node执行到require时...

2018-07-28 00:43:08 210

原创 javascript之垃圾回收机制

前言javascript自身带有垃圾回收机制, 所以不需要我们自己手动的回收内存。 垃圾回收机制会按照一定周期运行。 垃圾回收具体有那些方式呢? 又是怎做的呢?垃圾回收机制目前javascript引擎中的垃圾回收机制, 主要是两种: 1. 标记清除 2. 引用计数标记清除从名字可以看出, 这里有两个动作:标记出需要清除的、具体执行清除动作。工作原理: 当变量进入执行环...

2018-07-27 13:03:49 1163

原创 看看Array.property.reduce是如何实现的

前言由于自己对数组方法的reduce函数不熟悉, 所以就决定好好学习一下reduce方法。 在MDN好好看了它的用法。 并把它的polyfill好好阅读了一下。 以下是polyfill的实现, 和自己的注释。 正文if(!Array.prototype.reduce){ Object.defineProperty(Array.prototype, 'reduce', {...

2018-07-26 18:10:39 658

原创 javascript之Object详解

前言在javascript中, 对象是我们都在用的, 但是呢,并不是每个人都对Object十分了解。 本文也是在自己对Object记忆有点模糊之后,重新复习的产物。对象的操作关于说对象是啥, 这里就不赘述了。 直接入正题。关于对象, 我们一般会进行哪些操作?1. 对象的创建2. 对象属性及属性值的设置3. 对象属性值的获取、修改4. 对象的遍历5. 对象属性的删除6....

2018-07-26 16:43:30 923

原创 记2019届阿里校招第一面

前言这是一个非常意外的事, 本来已经感觉没有机会了。 结果今天就突然接到了一个来自杭州的电话。 就意外的开始了我的第一次电话面试。 先是让我准备十分钟, 十分钟之后才开始, 找了一个安静的地方, 然后简单准备了一下自我介绍。 就等待面试的来临。面试中的问题文章不准备些写太多, 就是记录一下其中被问及的问题。 1. 自我介绍 2. 简单问了一下以前写的项目 3. 跨域问题, 我主要...

2018-07-25 20:02:45 3566

原创 词法分析--一个函数的执行过程

前言先出一个十分常见的题目, 如下:var age = 99;function t() { console.log(age) var age = 100}t()很明显, 这个题目会打印出undefined。 那么为什么呢? 很多人都会说: 因为变量提升啊, 这个时候没有赋值啊, 所以是undefined。 说的对, 那么变量提升又是怎样产生的呢?一...

2018-07-25 13:55:13 520

转载 js隐私转换

js隐私转换 http://www.cnblogs.com/ljk001/archive/2017/12/22/8086084.html

2018-07-23 16:15:24 360

原创 2019届阿里巴巴提前批内推在线编程题

前言先说结果: 结果是失败的, 在线编程限定30分钟。 而我实际作出来的时间慢了10分钟。题目设计的一个函数, 使其存入一个数组, 在函数内部执行先后执行数组的函数(异步的), 并把结果返回。 上代码:const timeout = ms =&gt; new Promise((resolve, reject) =&gt; { setTimeout(() =&gt;...

2018-07-19 20:25:53 7721

转载 axios使用手册

AxiosAxios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。Features从浏览器中创建 XMLHttpRequests从 node.js 创建 http 请求支持 Promise API拦截请求和响应转换请求数据和响应数据取消请求自动转换 JSON 数据客户端支持防御 XSRF浏览器支持安装使用...

2018-07-17 17:13:55 174

原创 简单实现一个Promise

Promise的构造函数function Promise(fn){ const self = this //在执行then注册函数时, 传入的函数中需要被this调用, 但是 this.status = 'pending' //状态 this.value //值 this.onResolvedCallback = [] //prom...

2018-07-17 12:04:54 2985 1

原创 Promise基本使用

promise是啥就不做介绍了, 直接入正题基本使用var p1 = new Promise((resolve, reject) =&gt; { //异步操作, 异步完成调用resolve改变状态, 失败调用reject改变promise的状态 setTimeout(()=&gt;{ resolve(1) }, 0) })//返回一个pro...

2018-07-16 20:39:15 181

原创 js获取宽高

有一个问题且看题目, 写的是获取宽高, 所以应该有一个隐含的谓语, 获取谁的宽高?本文中, 要获取三个东东的宽高。 所以没有写谓语。 获取哪三个的宽高屏幕浏览器window窗口页面元素获取屏幕的宽高对于一个页面, 最外层对象是window。 在window对象上有一个screen对象。 该对象中存有关于我们电脑屏幕的信息。关于宽高的信息如下window....

2018-07-14 16:11:50 1100

原创 react项目从零开始

创建webpack项目运行npm init -y在项目跟目录下创建src源代码目录和dist产品目录在src目录下创建index.html和index.js文件安装webpack webpack-cli在根目录下创建webpack的配置文件webpack.config.js配置webpack.config.js文件运行webpack安装webpack-dev-server运行...

2018-07-14 13:11:32 491

原创 跨浏览器问题

写在前面的话关于跨浏览器问题一直是一个大问题, 所以我决定在此做一个记录, 当然不可能把跨浏览器问题一下子都搞定, 所以该文章将是一个长期的过程, 当coding时遇到了, 就会完善该文。 添加事件var EventUtil = { /* *添加事件 */ addHandler: function(element, type, handler)...

2018-07-14 12:46:13 531

原创 http之缓存

前言http用于web应用传输数据, 但是呢, 并不是所有的数据都会从源服务器获取, 因为这样有可能浪费宽带, 也增加了服务器的负担, 毕竟多次重复处理相同的请求还是不必要的。 为了解决这个问题, http有了一个叫缓存的东西。 且看下文一、与http缓存相关的首部字段通用首部字段Cache-contorl —— 用于控制缓存的行为 Pragma——http1.0遗留下来的...

2018-07-13 17:56:04 263

空空如也

空空如也

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

TA关注的人

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