hpoenixf / hpoenixf.github.io Goto Github PK
View Code? Open in Web Editor NEW博客文章,含前端进阶系列
Home Page: http://hpoenixf.com
博客文章,含前端进阶系列
Home Page: http://hpoenixf.com
http://hpoenixf.com/posts/18922/
迭代器什么是迭代器js迭代器是一个对象,具有next方法,可以返回序列中的带有done和value两个属性的下一项。 1234567891011function makeIterator(array){ var nextIndex = 0;4 return { next: function(){ return nextInd
http://hpoenixf.com/posts/10126/
闭包和this,是两个相当高频的考点,然而你有没有想过,实际上他们两个都跟同一个知识点相关? 有请我们的这篇文章的主角,执行上下文 执行上下文执行上下文是什么可以简单理解执行上下文是js代码执行的环境,当js执行一段可执行代码时,会创建对应的执行上下文。他的组成如下 123456executionContextObj = { this: 对的就是你关注的那个this, VO:变量对象,
http://hpoenixf.com/posts/8215/
简介virtual dom是一个听起来很高大上的概念,是现代前端框架一个常见的概念。然而virtual dom并不像想象中的那么复杂,两三百行的代码就可以完成一个简单的实现,比如snabbdom的核心代码只有三百多行 snabbdom是一个简单而高效的virtual dom实现。vue便是维护了snabbdom的一份fork而实现virtual dom的。这两天阅读了snabbdom的源码,整理出
http://hpoenixf.com/posts/61514/
这是一篇从入职阿里一月总结被拖延到变成2018年总结的文章,不由得说我的拖延症是严重了一点。 2018年,先是在创业公司加了一个月9116做了小程序,然后离职从广州回到深圳,然后各种面试,然后苦等两个月五月底进阿里lazada,在阿里的半年里从期待到失落再到现在的再次有所期待,期间十月去了一次泰国旅游,人生真是一个又一个的起伏。
http://hpoenixf.com/posts/13626/
什么是前后端同构明确三个概念:「后端渲染」指传统的 ASP、Java 或 PHP 的渲染机制;「前端渲染」指使用 JS 来渲染页面大部分内容,代表是现在流行的 SPA 单页面应用;「同构渲染」指前后端共用 JS,首次渲染时使用 Node.js 来直出 HTML。一般来说同构渲染是介于前后端中的共有部分。 感觉前端的确是折腾,之前还在流行前后端分离,现在怎么又要做前后端同构了? 原因是现在流行的SP
http://hpoenixf.com/posts/38806/
前端除了JS,HTML,CSS三板斧,还要懂些什么?有什么东西对我们提升自己前端水平有帮助?
http://hpoenixf.com/posts/2967/
编写代码只是做好项目的一小部分,写代码难免会碰到错误。因此,在项目上线后,我们还需要主动对项目的错误进行收集,不能等用户发现错误,再联系我们,我们再去处理。这样很容易造成大的损失,提前做好错误收集和处理,可以减少损失。 本人并没有做过相关的工作,下面的文章只是我在学习中的一点思考和总结,可能有比较多不足和错误的地方,希望大家指正和指导。 本文章为前端进阶系列的一部分,欢迎关注和star本博客或是关
http://hpoenixf.com/posts/21689/
任务队列js是单线程的,因为js可以操作DOM,如果多线程的话,会造成冲突的问题。 js的任务分为同步任务和异步任务。同步任务是指在主线程上依次执行的任务,形成一个执行栈。而异步任务不在主线程,在任务队列中,如网络请求,定时器等。在执行栈的任务执行完毕之后,系统会检查任务队列,看是否有可以执行的异步任务。- 而任务队列分为两种,一种是mircotask,另一种是marcotask。按照我的理解,m
http://hpoenixf.com/posts/64382/
在性能优化的时候,比较常见的一个建议是,把资源部署在CDN上,那么问题来了,CDN是什么?这样做有什么好处? DNS我们先讲一下域名系统DNS(Domain Name System)吧。
http://hpoenixf.com/posts/10947/
什么是promisepromise是es6的一个重要特性,用于实现异步。promise对象拥有一个叫做状态的属性,该属性不受外界影响,修改后不能再次变化。而Promise是一个构造函数,可以生成promise对象。常见用法是 123456789101112var a = new Promise(function (res, rej) { console.log('1&apos
http://hpoenixf.com/posts/4100/
背景我最近一个月面试了20来个公司,其中有你们应该都听过的bat,今日头条,京东,网易,大疆,oppo,还有shopee,招商金科,有赞等比较不错的公司,收获了六个offer。 在这里对我的面试经历做一个简单的分享,希望对大家有帮助。在这里,我不会一家一家的公司去细列他们去问了什么,只会去讲述下面试流程面试中可能碰到的问题以及我的部分解答。 面试流程如果你时间紧张或是在职,大部分大公司是支持第一轮
http://hpoenixf.com/posts/25280/
背景之前我分享了文章大厂前端面试考什么?,你们一定很想看答案吧?说实话,答案我是有,在准备面试的时候会时不时翻看,但内容比较多,比较凌乱,不能指望我在一篇文章中写完。 我是从非计算机专业自学前端的,到现在(2018年4月)有两年半的时间。中间经历了不少迷茫,技术也止步不前,怀疑自己可能只是一辈子这样写写页面。然而在最近的面试中通过学习和思考,找到了前进的方向,也得到一些大公司(BATJ中的两家)的
http://hpoenixf.com/posts/37425/
面向对象有三个特点,一个个来说 封装私有变量利用闭包实现对象的私有变量。 12345678910function Animal (age) { this.getAge = function () { return age }}var dog = new Animal(3)console.log(dog.age) // undefinedconsol
http://hpoenixf.com/posts/41240/
背景设计一个模态弹窗,讲一下你会怎么设计。 该题目来自某大厂的电话面试。该题目具有开放性,可以考察面试者的项目构思经验与能力,是一个比较不错的题目。 我试着整理一下我的解答,在这里跟大家讨论交流一下。
http://hpoenixf.com/posts/2511/
最近接触了不少面试题目,有这么一类常见的题目,没有标准答案,上下限差距很大,第一次碰到没有准备的话,回答起来总会比较纠结。 具体的题目有性能优化,提升代码质量,做埋点系统,优化webpack等,这里我把他们统称为系统设计和优化题。 在这里我尝试找一下应对这些问题的套路,让大家可以在工作和面试中找到感觉,顺利过关。
http://hpoenixf.com/posts/63809/
最近读了代码整洁之道和编写可维护代码的艺术,发现这两本书的道理还是相同的,主要是下面这几点,命名,注释,逻辑,函数,格式,组织。写篇文章整合记录一下。 命名好的命名有下面的特征 名副其实 名字与抽象层级符合 有表现力 名字带上更多信息 大作用域的名字使用更长的名字。 避免误导,类似,容易混淆的名字 名字的区分有意义 可读的/容易搜索/熟悉的名字 每个概念用同一个名字,如获取数据统一用fetchX
http://hpoenixf.com/posts/22307/
背景http状态码有哪些,这也是一个很高频的面试问题。一般大家都知道404页面不存在,500服务器错误,301重定向,302临时重定向,200ok,401未授权啥的。 如果只是简单的这样答,可能只能让面试官给你的答案打个五六十分,不足以给面试官留下良好的印象,为了展现自己良好的http知识,你或许可以重点介绍三个状态码及相关的知识,他们分别是304协商缓存,101协议升级,以及307hsts跳转。
http://hpoenixf.com/posts/34369/
帧同步简介帧同步是让玩家保持一致性,可以进行对战联机的功能,王者荣耀要采用了该技术。简单点来说,就是每当玩家进行操作,都会上传对应的操作给服务器,服务器定时将收到的操作发放给游戏客户端,每个游戏客户端收到的数据都是一样的,运行的结果自然也是一样的。 帧同步跟状态同步相比,优点有:高一致性,低流量消耗,简化服务器逻辑,容易反作弊。
http://hpoenixf.com/posts/64805/
chrome 插件开发 背景lazada的促销页面主要是由前端开发一个个模块,然后运营选取模块像积木一样搭建好页面。每个模块是独立请求数据并渲染的。因此一个页面可能会有十几个请求,我们经常会碰到某个模块没有显示或是数据出错,这时就要控制台一个个排查模块对应的请求数据是哪个,参数是哪个,出错的又是哪个模块,又是什么版本。还是有点繁琐。因此我决定开发一个chrome插件来简化这样的操作。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.