首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
前端进阶
yck
创建于2021-05-10
订阅专栏
你需要的前端进阶知识
等 307 人订阅
共28篇文章
创建于2021-05-10
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
('b'+'a'+ + 'a'+'a').toLowerCase() === 'banana'?
其实这是一道基础题目,考察点是类型转换以及操作符优先级。 首先这道题目中的加号并不全是用于加法的,++'a' 中的第二个加号其实是一元操作符。 那么接下来我们来学习一下一元加号操作符的作用。其实在 JS 中总共有九种一元操作符,分别为: 当然本文主题不是介绍所有一元操作符作用的…
重学 JS 系列:聊聊继承
继承得靠原型来实现,当然原型不是这篇文章的重点,我们来复习一下即可。 对象之间通过 __proto__ 连接起来,这样称之为原型链。当前对象上不存在的属性可以通过原型链一层层往上查找,直到顶层 Object 对象 其实原型中最重要的内容就是这些了,完全没有必要去看那些长篇大论什…
React 进阶系列:Hooks 该怎么用
之前如果我们需要抽离一些重复的逻辑,就会选择 HOC 或者 render props 的方式。但是通过这样的方式去实现组件,你打开 React DevTools 就会发现组件被各种其他组件包裹在里面。这种方式首先提高了 debug 的难度,并且也很难实现共享状态。 但是通过 H…
重学 JS 系列:聊聊 new 操作符
虽然上述例子中的构造函数中返回了 1,但是这个返回值并没有任何的用处,得到的结果还是和之前的例子完全一样。 通过这个例子我们可以发现,虽然构造函数内部的 this 还是依旧正常工作的,但是当返回值为对象时,这个返回值就会被正常的返回出去。 通过以上几个例子,相信大家也大致了解了…
Vuex 源码深度解析
在解读源码之前,先来简单了解下 Vuex 的思想。 Vuex 全局维护着一个对象,使用到了单例设计模式。在这个全局对象中,所有属性都是响应式的,任意属性进行了改变,都会造成使用到该属性的组件进行更新。并且只能通过 commit 的方式改变状态,实现了单向数据流模式。 在看接下来…
近两万字小程序攻略发布了
OpenId 是一个用户对于一个小程序/公众号的标识,开发者可以通过这个标识识别出用户。 UnionId 是一个用户对于同主体微信小程序/公众号/APP的标识,开发者需要在微信开放平台下绑定相同账号的主体。开发者可通过UnionId,实现多个小程序、公众号、甚至APP 之间的数…
深度解析 Vue 响应式原理
无论是对象还是数组,需要实现双向绑定的话最终都会执行这个函数,该函数可以监听到 set 和 get 的事件。 在 Object.defineProperty 中自定义 get 和 set 函数,并在 get 中进行依赖收集,在 set 中派发更新。接下来我们先看如何进行依赖收集…
VueRouter 源码深度解析
在解析源码前,先来了解下前端路由的实现原理。 前端路由实现起来其实很简单,本质就是监听 URL 的变化,然后匹配路由规则,显示相应的页面,并且无须刷新。目前单页面使用的路由就只有两种实现方式 www.test.com/#/ 就是 Hash URL,当 # 后面的哈希值发生变化时…
深入框架本源系列 —— Virtual Dom
众所周知,操作 DOM 是很耗费性能的一件事情,既然如此,我们可以考虑通过 JS 对象来模拟 DOM 对象,毕竟操作 JS 对象比操作 DOM 省时的多。 从上述例子中,我们一眼就可以看出先前的 ul 中的第三个 li 被移除了,四五替换了位置。 当然在实际操作中,我们还需要给…
深度解析原型中的各个难点
本文不会过多介绍基础知识,而是把重点放在原型的各个难点上。 首先来介绍下 prototype 属性。这是一个显式原型属性,只有函数才拥有该属性。基本上所有函数都有这个属性,但是也有一个例外 如果你以上述方法创建一个函数,那么可以发现这个函数是不具有 prototype 属性的。…
Redux 源码深度解析(附带视频1月14号上传)
在进入正题前,我们首先来看一下在项目中是如何使用 Redux 的,根据使用步骤来讲解源码。以 我开源的 React 项目 为例。 介绍完了使用步骤,接下来进入正题。 combineReducers 函数总的来说很简单,总结来说就是接收一个对象,将参数过滤后返回一个函数。该函数里…