pengfei huang
pengfei huang
http://hpoenixf.com/posts/10126/ 闭包和this,是两个相当高频的考点,然而你有没有想过,实际上他们两个都跟同一个知识点相关? 有请我们的这篇文章的主角,执行上下文 执行上下文执行上下文是什么可以简单理解执行上下文是js代码执行的环境,当js执行一段可执行代码时,会创建对应的执行上下文。他的组成如下 123456executionContextObj = { this: 对的就是你关注的那个this, VO:变量对象,
http://hpoenixf.com/posts/61514/ 这是一篇从入职阿里一月总结被拖延到变成2018年总结的文章,不由得说我的拖延症是严重了一点。 2018年,先是在创业公司加了一个月9116做了小程序,然后离职从广州回到深圳,然后各种面试,然后苦等两个月五月底进阿里lazada,在阿里的半年里从期待到失落再到现在的再次有所期待,期间十月去了一次泰国旅游,人生真是一个又一个的起伏。
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/21689/ 任务队列js是单线程的,因为js可以操作DOM,如果多线程的话,会造成冲突的问题。 js的任务分为同步任务和异步任务。同步任务是指在主线程上依次执行的任务,形成一个执行栈。而异步任务不在主线程,在任务队列中,如网络请求,定时器等。在执行栈的任务执行完毕之后,系统会检查任务队列,看是否有可以执行的异步任务。- 而任务队列分为两种,一种是mircotask,另一种是marcotask。按照我的理解,m
http://hpoenixf.com/posts/4100/ 背景我最近一个月面试了20来个公司,其中有你们应该都听过的bat,今日头条,京东,网易,大疆,oppo,还有shopee,招商金科,有赞等比较不错的公司,收获了六个offer。 在这里对我的面试经历做一个简单的分享,希望对大家有帮助。在这里,我不会一家一家的公司去细列他们去问了什么,只会去讲述下面试流程面试中可能碰到的问题以及我的部分解答。 面试流程如果你时间紧张或是在职,大部分大公司是支持第一轮
http://hpoenixf.com/posts/22307/ 背景http状态码有哪些,这也是一个很高频的面试问题。一般大家都知道404页面不存在,500服务器错误,301重定向,302临时重定向,200ok,401未授权啥的。 如果只是简单的这样答,可能只能让面试官给你的答案打个五六十分,不足以给面试官留下良好的印象,为了展现自己良好的http知识,你或许可以重点介绍三个状态码及相关的知识,他们分别是304协商缓存,101协议升级,以及307hsts跳转。
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/10947/ 什么是promisepromise是es6的一个重要特性,用于实现异步。promise对象拥有一个叫做状态的属性,该属性不受外界影响,修改后不能再次变化。而Promise是一个构造函数,可以生成promise对象。常见用法是 123456789101112var a = new Promise(function (res, rej) { console.log('1&apos
http://hpoenixf.com/posts/64805/ chrome 插件开发 背景lazada的促销页面主要是由前端开发一个个模块,然后运营选取模块像积木一样搭建好页面。每个模块是独立请求数据并渲染的。因此一个页面可能会有十几个请求,我们经常会碰到某个模块没有显示或是数据出错,这时就要控制台一个个排查模块对应的请求数据是哪个,参数是哪个,出错的又是哪个模块,又是什么版本。还是有点繁琐。因此我决定开发一个chrome插件来简化这样的操作。