自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 将字符串中的rgb颜色转换为16进制

有一个项目需要和原生对接,而原生的颜色无法识别rgb,因此出现了这个转换需求。细分析,这个需求需要:1. 提取出rgb颜色 ; 2. 转换rgb为16进制3. 替换 正好强大的js正则可以简化这个步骤,replace函数可以简化这个过程,省略掉了3这个步骤。废话不多说,直接上代码1. 把转换rgb的函数formatColor提取出来,利用toString()可以转换...

2018-08-28 16:43:09 1804

原创 使用Proxy和Reflect实现观察者模式

观察者模式(Observer Mode)定义:函数自动观察数据对象的模式,一旦对象有变化,函数就会自动执行const observeObj = require('./observe.js')const observe = observeObj.observeconst observable = Observe.observableconst person = observable({...

2018-08-24 15:35:46 672

原创 手写一个promise

class Qromise { constructor(fn) { this.status = 'pending' this.error = '' this.data = '' try{ fn(this.onFullfilled.bind(this), this.onRejected.bind(th...

2018-07-24 15:38:34 640

原创 js实现sleep效果

1.使用promisefunction sleep(ms){ var temple=new Promise( (resolve)=>{ console.log(111);setTimeout(resolve,ms) }); return temple}sleep(500).then(function(){ console.lo...

2018-07-24 10:04:30 4447

原创 js手动实现bind

Function.prototype.bind=function(obj){ var arg=Array.prototype.slice.call(arguments,1); var context=this; var bound=function(){ arg=arg.concat(Array.prototype.slice.call(arguments))...

2018-07-24 09:43:55 1673

原创 三道原生js面试题(面向高级)

这三题原本是公司为招聘的前端开发工程师定职级准备的题目,分别考察了库里化、中间件、回调函数的应用。独乐乐不如众乐乐,分享给大家,共同提升对原生js的理解~话不多说,亮题~大家如果有更好的实现方法欢迎提出探讨~ 1.编写curry.js实现函数的分步调用var curry = require('./curry.js');// <- this is the file y...

2018-07-23 17:21:22 6142

转载 js异步时间的执行顺序

 Job queue中的执行顺序队列分为两种类型:macro-task(微任务)和microTask(宏任务)。我们举例来看执行顺序的规定,我们设macro-task队列包含任务: a1, a2 , a3micro-task队列包含任务: b1, b2 , b3执行顺序为,首先执行marco-task队列开头的任务,也就是 a1 任务,执行完毕后,在执行micro-task队列里的所...

2018-07-17 16:35:59 1393

原创 《高性能javascript》读书笔记

此书主要从js语法层面,算法,浏览器渲染机制,网络传输HTTP、XHR,项目创建和部署方面给与高性能网站的优化方式。一、加载和运行1.javascript阻塞dom渲染,尽量放在body底部。可以组合外接javascript,数量多性能更慢。 保持javascript文件小。//window.onload之后开始下载脚本。 不改变dom的脚本使用defered属性,其会异步下载,并

2018-02-27 14:56:29 241

转载 Mac OS X Terminal教程

为什么要使用命令行/如何开启命令行?许多功能在图形界面不提供,只有通过命令行来实现。Finder会隐藏许多你不太会需要的文件,然而 command line 会允许你访问所有文件。通过 command line 可以远程访问你的 Mac(利用 SSH)。administrators 用户可以通过 sudo 命令获得 root 用户权限。通过 command-line script 可以

2018-01-31 16:58:24 8288

原创 fetch跨域实现及post传参问题

fetch跨域有两种方法:1.前端jsonp跨域2.后端设置cors跨域 首先,尝试了jsonp跨域,可以轻松成功连接上豆瓣API引入包 fetch-jsonp try{ const url = `https://api.douban.com/v2/book/search?q=${searchName}&count=20`; y...

2018-01-03 14:37:28 4293

原创 《你不知道的javascript(上卷)》——读书笔记

《你不知道的javascript(上卷)》摘要:        我觉得这本数对javascript的一些难点有深层次的分析,遂打算近日拿来学习.         本书目录:                第一部分: 作用域和闭包               第二部分: this和对象原型第一部分:作用域概念:引

2017-12-21 14:31:07 877

转载 web缓存与304

细说缓存与304写在最前在平时的前端开发中我们经常会遇到这种操作。明明我代码更新了,咋刷出来还是以前的呢?是不是缓存了?快清下缓存看看!你看页面是304,怪不得没更新!等等很多情况。作者起初也不是很了解,因为这个不由前端来控制,都是后端的操作。故这次使用node也来写一个控制缓存的服务来真正搞明白这里的道道。欢迎关注我的博客,不定期更新中——浏览器缓存机制在说这个服务如何写之前我们...

2017-12-19 11:05:20 2655 2

原创 《javascript语言精粹》——读书笔记

继承、原型对象减少全局变量使用所谓编程即是一组需求分解成一组函数和数据结构的技能

2017-12-18 09:40:33 371

原创 promise基础

promise 简要介绍

2017-12-14 18:03:29 174

原创 Google Analytic谷歌分析

Google Analytic谷歌分析 react-ga

2017-12-13 18:34:53 5871

原创 set和map

map//集合之复习 , 集合具有快速的查询速度//在需要对除字符串以外的数据类型进行映射的时候 var mm = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]); let mmm = mm.get('Michael'); // 95 console.log(mmm) let obj = {}; l

2017-12-12 19:24:30 191

原创 测试js程序运行时间

console.time('test')js

2017-12-08 19:21:55 595

原创 git 学习总结

初始化 git init 添加新单位 git add .提交单位 git commit查看git状态git status查看提交历史 git log 回到上一个版本 HEAD^ 上上个版本是HEAD^^ ,前十个版本是HEAD~10git reset --hard HEAD^如果后悔,还想回到刚才的最新版本(只需要输入几位就好了,git会自动去找) git reset --hard 345435 git stash

2017-12-08 15:48:34 229

原创 js原生实现高性能懒加载(分步解析)

小弟不才,自己做了一个简单的懒加载,为了节约 window.onscroll的次数 ,提高性能, 设计了函数节流和函数防抖两种模式 , 后面想到更好的方法会更新,也请各位朋友多多指点!! :D 废话不多说,直接亮代码~~1.简单懒加载:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Docu

2017-12-07 20:58:32 17203 6

原创 TypeScript中的 ?: 是什么意思

可选参数和可选属性使用了 –strictNullChecks,可选参数会被自动地加上 | undefined:复制到剪切板function f(x: number, y?: number) { return x + (y || 0);}f(1, 2);f(1);f(1, undefined);f(1, null); // error, 'null' is not assignabl

2017-12-06 10:44:39 33733 1

转载 History配合Ajax实现无刷新页面跳转

一些网站头尾内容都是一样的,刷新总显得浪费。从体验上讲,点击导航,右侧Ajax局部刷新是更优的策略。Ajax局部刷新小菜,稍有经验都能轻松应对。现在如果提出如下需求:每次ajax刷新就如果页面刷新一样,可以后退查看之前内容,怎么破?我的策略如下:每次手动点击左侧的菜单,我将Ajax地址的查询内容(?后面的)附在demo HTML页面地址后面,使用history.pushState塞到浏览器历史中。

2017-12-01 11:16:54 1093

原创 Babel——ES6转换

1. 在线转换 https://babeljs.cn/ 2. 手动转换 首先 npm -init**1)配置.Babelrc文件** { "presets": ["latest"], "plugins": []}// es2015转码规则npm install --save-dev babel-preset-es2015// react转码规则npm inst

2017-12-01 10:20:22 2517

原创 React 基础知识点复习

react难点:组件怎么拆分? 单一原则,只干一件事,功能简单,不复用不拆,考虑迭代 数据放在哪里?【数据】 props:数据传递 state:私有状态(用户输入、默认属性) 数据尽量给顶层组件 为什么用setState? 因为虚拟dom没完成更新,且修改的是复制的state setState:在原来的基础上进行合并,异步,解决:this.setState(functi

2017-11-29 12:31:38 1749

空空如也

空空如也

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

TA关注的人

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