3 huangpb0624

尚未进行身份认证

暂无相关简介

等级
TA的排名 1w+

js 原理题

1.new的实现原理创建一个空对象 这个新对象被执行[[原型]]连接 构造函数中的this指向这个空对象,执行构造函数方法,属性和方法被添加到this引用的对象中 如果构造函数中没有返回其它对象,那么返回this,即创建的这个的新对象,否则,返回构造函数中返回的对象。function_new(){lettarget={};//创建的新对象/...

2019-10-09 10:12:44

如何正确判断this的指向?

如果用一句话概括this的指向,那么即是:谁调用它,this就指向谁。但是仅通过这句话,我们很多时候并不能准确判断this的指向。因此我们需要借助一些规则去帮助自己:this的指向可以按照以下顺序判断:全局环境中的this浏览器环境:无论是否在严格模式下,在全局执行环境中(在任何函数体外部)this都指向全局对象window;node环境:无论是否在严格模...

2019-10-13 22:43:48

热门跨平台方案对比:WEEX、React Native、Flutter和PWA

传统的原生Android、iOS开发面临着诸多难以解决的问题,例如开发周期长、迭代缓慢等,因此很多公司备受困扰。近年来,伴随着“大前端”概念的提出和兴起,涌现出一大批移动跨平台开发框架和模式,为解决传统移动开发问题找到了新的方向。从早期的PhoneGap、Inoic等Hybrid混合技术,到现在耳熟能详的ReactNative、WEEX和Flutter等跨平台技术,借助这些优秀的跨平台开发框...

2019-09-04 09:49:01

Mac下通过 HomeBrew 安装和配置 Nginx

Nginx(音“enginex”)是一款开源的web和反向代理服务器,查看官网。具有高性能、高并发、低内存特点,另外还有一些特色的Web服务器功能,如负载均衡、缓存、访问和带宽控制。MAC环境下有一个好用的软件安装方法,使用homebrew来安装各个软件既快捷又不用考虑依赖包的问题。1、先安装homebrew。官网。终端执行以下命令:ruby-e"$(curl-fsSL...

2019-08-21 23:48:11

前端三大主流框架的对比React、Vue、Angular

1.组件React和Vue都擅长处理组件:小型的无状态的函数接收输入和返回元素作为输出。Angular没有组件化的概念。2.Typescript,ES6与ES5React专注于使用ES6。Vue使用ES5或ES6。Angular依赖于TypeScript。3.模板——JSX还是HTMLReact使用JSX模板,把'HTML'放...

2019-08-21 23:33:15

Prettier 代码格式化工具

Prettier是一个代码格式化工具,它可以支持js/jsx/ts/flow/json/css/less/scss等文件格式。为什么要使用Prettier?用来替代lint中的一些场景,比如说分号/tab缩进/空格/引号,这些在lint工具检查出问题之后还需要手动修改,而通常这样的错误都是空格或者符号之类的,这样相对来说不太优雅,利用格式化工具自动生成省时省力。VSCode...

2019-08-01 00:10:37

理解 JavaScript 中的执行上下文

什么是执行上下文?执行上下文是执行JavaScript代码的环境。每当Javascript代码运行的时候,它都是在执行上下文中运行。执行上下文的类型JavaScript中有三种执行上下文类型:全局执行上下文—这是默认或者说基础的上下文,任何不在函数内部的代码都在全局上下文中。它会执行两件事:创建一个全局的window对象(浏览器的情况下),并且设置this的值...

2019-07-27 16:00:24

JS引擎是如何工作的?

JS引擎是一个可以编译、解释我们的JS代码强大的组织。最受欢迎的JS引擎是V8,由GoogleChrome和Node.js使用,SpiderMonkey用于Firefox,以及Safari/WebKit使用的JavaScriptCore。虽然现在JS引擎不是帮我们处理全面的工作。但是每个引擎中都有一些较小的组织为我们做繁琐的的工作。其中一个组件是调用堆栈(CallS...

2019-07-27 15:30:04

主流浏览器内核和引擎

一、主流浏览器内核和引擎浏览器 内核 引擎 IE Trident Chrome Webkit(以前)/Blink(现在) V8 Safari Webkit JavaScriptCore Firefox Gecko SpiderMonkey 360浏览器、猎豹浏览器 IE+Chrome双内核 ...

2019-07-26 22:49:25

最全45种设计模式

设计模式(Designpattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式的类型最全45种设计模式有哪些呢?这些模式可以分为四大类:创建型模式(CreationalPatterns)-这些设计模式提供了一种在...

2019-07-25 23:14:12

Linux 常用命令

一、Linux内核Linux是一套开源的类Unix操作系统,是一个基于Posix和Unix的多用户、多任务、支持多线程和多CPU的,用C语言写成的操作系统。目前成型的系统有如下:手机:Android、ios(只能算半个) 电脑:linux、ubuntu、MAC等二、Linux目录结构1./root超级用户目录2./sbin/sbin超级...

2019-07-25 23:05:46

React 项目安装与配置 ESlint

1.安装eslint//全局安装npmi-geslint//当然也可以局部安装cnpmi-Deslint2.安装依赖包cnpmi-Deslint-config-airbnbeslint-plugin-jsx-a11yeslint-plugin-importeslint-plugin-reactbabel-eslinteslint-load...

2019-07-16 00:36:35

Moment.js 日期处理类库

以下笔记针对v2.10.6版本一、安装npminstallmoment—save二、Moment汉化1.全局汉化moment.locale('zh-cn')2.局部汉化moment().locale(‘zh-cn’).format(‘h:mm:ssa’)//5:00:22下午...

2019-07-07 16:49:23

从 Node8 升级到 Node12 之采坑

之前版本是Node8,感觉版本有点低,然后就升级到了最新版本v12.4.0。升级完之后,之前安装的各种npm包报错。下面我们娓娓道来。问题一:项目启动时node-sass报错报错的内容是:以前装的node-sass跟现在的node环境不匹配,所以我们要重新安装一下,执行:npminode-sass-D有时候执行这个命令会报错:有可能之前这个包是...

2019-06-25 23:41:38

Mac 全局安装 webpack 报错权限不足解决方法

今天在Mac上全局安装webpack、webpack-dev-server时,虽然命令前都加了sudo,安装时还是报了权限不足的错误:解决方法如下:sudonpminstallwebpack-g--unsafe-perm=true--allow-root或sudonpminstallwebpack-g--unsafe-perm=true...

2019-06-24 23:51:31

微信小程序转支付宝小程序之 wx2ali 踩坑

公司业务需要,要把本来的微信小程序移植到支付宝小程序,网上搜了一下,也没有很成熟的方案,用的最多的就是用wx2ali这个工具。这个工具也只能把微信小程序文件的后缀名替换成支付宝小程序文件的后缀名,还有把绝大部分原生API的名称替换了一下,有很多细节还是要自己去改的。下面我就来讲一下项目从0到上线亲自踩过的坑。ps:我用的是wx2ali@1.1.7这个版本踩坑1...

2019-06-15 16:09:23

前端大文件上传

最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现。在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表格数据、上传影音文件等。如果文件体积比较大,或者网络条件不好时,上传的时间会比较长(要传输更多的报文,丢包重传的概率也更大),用户不能刷新页面,只能耐心等待请求完成。下面从文件上传方式入手,整理...

2019-06-05 23:38:01

设计无限滚动下拉加载,实践高性能页面真谛

设计无限滚动下拉加载,实践高性能页面真谛UXPlanet论坛上有过这么一篇热门文章:InfiniteScrollingBestPractices,它从UX角度分析了无限滚动加载的设计实践。无限滚动加载在互联网上到处都有应用:豆瓣首页是一个,Facebook的Timeline是一个,Tweeter的话题列表也是一个。当你向下滚动,新的内容就神奇的“无中生有”了。这是一个得到广泛赞...

2019-06-01 22:44:39

仿“今日头条”效果的js无限滚动加载

效果《今日头条》网页里页面向下滚动时,新闻会不断的追加。查看了dom元素,他们是把新请求到的新闻不断地追加到ul里。思路1.判断网页是否滚动到了底部,并且当前没有请求在执行2.请求数据3.追加数据细节1.可以规定距离页面底部多少距离算底部(这里用的是20),在这个区域内会请求数据2.用一个状态锁isFetching判断当前有没有请求正在执行,有...

2019-06-01 22:36:59

Selection对象

被选择文本示例代码<p>发大幅<strong>大大泡泡糖</strong>度那附近那<strong>小头爸爸</strong>多好撒节点是的是</p>以下几个属性和方法兼容性良好,而且对文本和输入框都有效。varselObj=window.getSelection();//获取跟选择范围有关的信息...

2019-05-26 22:56:13

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。