陈伦刚的个人博客

JS中如何区分数组和对象

方法一:通过调用constructor来识别

陈伦刚 发布于 2023-06-08

Vue router中history mode 和 hash mode

1. 背景知识 大多数vue项目采用SPA(单页面应用)的模式开发,不同视图的切换,都要通过前端路由去管理和控制。 因此平时我们开发vue的项目,都会install vue-router来实现前端路由,控制视图的切换。 前端路由的作用,就是改变视图的同时不会向后端发出请求。 vue-Router的原

陈伦刚 发布于 2023-06-08

JavaScript中的堆栈

栈内存 栈内存由编译器自动分配与释放。我们可以直接操作栈内存中的值。js中的基本数据类都有固定的大小,被分配到栈内存中。这些基本类型的值都是按值引用。将一个基本类型的值赋值给另外一个基本类型时,会为这个新的值重新创建一个值并保存在栈内存中。 堆内存 堆内存是链表结构的类型,可以动态分配大小,js引用

陈伦刚 发布于 2023-06-08

Javascript的事件流模型

事件冒泡:事件开始由最具体的元素接受,然后逐级向上传播 事件捕捉:事件由最不具体的节点先接收,然后逐级向下,一直到最具体的(与上面相反) DOM事件流:三个阶段:事件捕捉,目标阶段,事件冒泡

陈伦刚 发布于 2023-06-08

css3新特性

CSS3是最新的CSS标准,旨在扩展CSS2.1。 圆角 通过border-radius属性可以给任何元素制作圆角。 border-radius: 所有四个边角border-*-*-radius属性的缩写。 border-top-l

陈伦刚 发布于 2023-06-08

ES6新特性

1、解决原有语法的缺陷和不足 例如:let,const 2、对原有语法进行增强 解构、扩展、模板字符串 3、新增对象、全新的方法,全新的功能 Object.assign()、Proxy对象代理、Reflect 等等 4、全新的数据类型和数据结构 set、map、class、迭代器、生成器 等等 一、

陈伦刚 发布于 2023-06-08

事件委托

事件委托利用了事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。例如,click事件会一直冒泡到document层次,也就是是说我们可以为整个页面指定一个onclick事件处理程序,而不必给每个可单击元素分别添加事件处理程序。 现在我们回到那个面试题,来写一个事件委托的方法。

陈伦刚 发布于 2023-06-08

vue mixin

简介 Mixins是一种让元件共用功能的方法,使用方式即是将共用功能以物件(以下称为mixin object)的方式传入mixins option。mixin object可传入元件的任何option,例如:data、computed或methods。当元件选用Mixins时,使用的mixin ob

陈伦刚 发布于 2023-06-08

vue的diff算法

1. 当数据发生变化时,vue是怎么更新节点的? 要知道渲染真实DOM的开销是很大的,比如有时候我们修改了某个数据,如果直接渲染到真实dom上会引起整个dom树的重绘和重排,有没有可能我们只更新我们修改的那一小块dom而不要更新整个dom呢?diff算法能够帮助我们。 我们先根据真实DOM生成一颗v

陈伦刚 发布于 2023-06-08

原形和原型链

原型 Javascript中有一句话,叫一切皆是对象,当然这句话也不严谨,比如null和undefined就不是对象,除了这俩完全可以说Javascript一切皆是对象。而Javascript对象都有一个叫做原型的公共属性,属性名是_proto_。这个原型属性是对另一个对象的引用,通过这个原型属性我

陈伦刚 发布于 2023-06-08