
Javascript
hawkey7
色即是空
展开
-
测试js程序运行时间
console.time('test')js原创 2017-12-08 19:21:55 · 663 阅读 · 0 评论 -
将字符串中的rgb颜色转换为16进制
有一个项目需要和原生对接,而原生的颜色无法识别rgb,因此出现了这个转换需求。细分析,这个需求需要:1. 提取出rgb颜色 ; 2. 转换rgb为16进制3. 替换 正好强大的js正则可以简化这个步骤,replace函数可以简化这个过程,省略掉了3这个步骤。废话不多说,直接上代码1. 把转换rgb的函数formatColor提取出来,利用toString()可以转换...原创 2018-08-28 16:43:09 · 1909 阅读 · 0 评论 -
手写一个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 · 716 阅读 · 0 评论 -
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 · 4551 阅读 · 0 评论 -
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 · 1733 阅读 · 0 评论 -
三道原生js面试题(面向高级)
这三题原本是公司为招聘的前端开发工程师定职级准备的题目,分别考察了库里化、中间件、回调函数的应用。独乐乐不如众乐乐,分享给大家,共同提升对原生js的理解~话不多说,亮题~大家如果有更好的实现方法欢迎提出探讨~ 1.编写curry.js实现函数的分步调用var curry = require('./curry.js');// <- this is the file y...原创 2018-07-23 17:21:22 · 6246 阅读 · 0 评论 -
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 · 1481 阅读 · 0 评论 -
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 · 4472 阅读 · 0 评论 -
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 · 227 阅读 · 0 评论 -
《javascript语言精粹》——读书笔记
继承、原型对象减少全局变量使用所谓编程即是一组需求分解成一组函数和数据结构的技能原创 2017-12-18 09:40:33 · 469 阅读 · 0 评论 -
promise基础
promise 简要介绍原创 2017-12-14 18:03:29 · 204 阅读 · 0 评论 -
《你不知道的javascript(上卷)》——读书笔记
《你不知道的javascript(上卷)》摘要: 我觉得这本数对javascript的一些难点有深层次的分析,遂打算近日拿来学习. 本书目录: 第一部分: 作用域和闭包 第二部分: this和对象原型第一部分:作用域概念:引原创 2017-12-21 14:31:07 · 970 阅读 · 0 评论 -
History配合Ajax实现无刷新页面跳转
一些网站头尾内容都是一样的,刷新总显得浪费。从体验上讲,点击导航,右侧Ajax局部刷新是更优的策略。Ajax局部刷新小菜,稍有经验都能轻松应对。现在如果提出如下需求:每次ajax刷新就如果页面刷新一样,可以后退查看之前内容,怎么破?我的策略如下:每次手动点击左侧的菜单,我将Ajax地址的查询内容(?后面的)附在demo HTML页面地址后面,使用history.pushState塞到浏览器历史中。转载 2017-12-01 11:16:54 · 1161 阅读 · 0 评论 -
js原生实现高性能懒加载(分步解析)
小弟不才,自己做了一个简单的懒加载,为了节约 window.onscroll的次数 ,提高性能, 设计了函数节流和函数防抖两种模式 , 后面想到更好的方法会更新,也请各位朋友多多指点!! :D 废话不多说,直接亮代码~~1.简单懒加载:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Docu原创 2017-12-07 20:58:32 · 17347 阅读 · 6 评论 -
使用Proxy和Reflect实现观察者模式
观察者模式(Observer Mode)定义:函数自动观察数据对象的模式,一旦对象有变化,函数就会自动执行const observeObj = require('./observe.js')const observe = observeObj.observeconst observable = Observe.observableconst person = observable({...原创 2018-08-24 15:35:46 · 744 阅读 · 0 评论