理解amd,cmd,commonjs,esm,umd 模块化
什么是模块 将一个复杂的程序依据一定的规则(规范)封装成几个块(文件),并进行组合在一起; 块的内部数据与实现是私有的, 只是向外部暴露一些接口(方法)与外部其它模块通信; 模块化的进化过程 1.全局function模式 将不同的功能封装成不同的全局函数 编码:将不同的功能封装成不同的全局函数 问题:污染全局命名空间, 容易引起命名冲突或数据不安全,而且模块成员之间看不出直接关系 2.namespace模式 简单对象封装 作用:减少了全...
你知道移动端适配吗
自适应:根据不同的设备屏幕大小来自动调整尺寸、大小 响应式:会随着屏幕的实时变动而自动调整,是一种更强的自适应 目前市面上移动端屏幕尺寸非常的繁多,很多时候我们希望一个元素在不同的屏幕上显示不同的大小以此来更好的还原效果图: 当我们针对一个手机进行布局设计时,设置了一个 200 200 大小的盒子 但在不同的设备上,由于逻辑像素不同的问题,会使得这个盒子在更大的视口上显得很小,在更小的视口上显示很大 因此我们需要进行适配 让它在不同设备...
前端性能优化_白屏-首屏加载
1 路由懒加载 SPA单页面应用项目,一个路由对应一个页面,如果不做处理,项目打包后,会把所有页面打包成一个文件,当用户打开首页时,会一次性加载所有资源,造成首页加载很慢,降低用户体验。(前后大概降低30%) 2 组件懒加载 除了路由的懒加载外,组件的懒加载在很多场景下也有重要的作用 例如:当用户打开某个页面,会一次性加载该页面所有的资源,我们期望的是有些组件使用户触发按钮后,再加载该弹窗组件的资源,例如弹窗组件,这时候,就可以考虑用懒...
44 个 React 前端面试问题
1.你知道哪些React hooks? :用于管理功能组件中的状态。 :用于在功能组件中执行副作用,例如获取数据或订阅事件。 :用于访问功能组件内的 React 上下文的值。 :用于创建对跨渲染持续存在的元素或值的可变引用。 :用于记忆函数以防止不必要的重新渲染。 :用于记忆值,通过缓存昂贵的计算来提高性能。 :用于通过reducer函数管理状态,类似于Redux的工作原理。 :与useEffect类似,但效果在所有DOM突变后同步运行...
JS进阶 | 详解ES6中的Class
「这是我参与2022首次更文挑战的第12天,活动详情查看: 」 JS进阶系列文章 👇 阅读本文你将学习到 👇 类中的构造函数 类的实例、静态、私有属性 类的实例、静态、私有方法 类的继承 关于 一些扩展知识点 在 ( )之前, 语法中是不支持类的,导致面向对象编程方法无法直接使用,但我们可以通过function来实现模拟出类,而随着 的更新,在 出现了中出现 关键字,可以用于定义类。接下来让我们看看它的如何使用的。 class 下面...
this指向-箭头函数this指向详解
一、思考: 1.为什么不能使用箭头函数来定义methods? 答:因为箭头函数没有自己的作用域,绑定的是父级作用域的上下文, 如果使用箭头函数,那么在获取data里面的数据的时候,this指向window导致访问失败 原因:这跟this的绑定规则有关,在箭头函数中不绑定this,但是如果箭头函数使用了this,会往上层作用域去找,注意:methods对象并不是作用域(所有的对象都没有作用域) 2.不使用箭头函数的情况下,this到底指向...
js 如何判断对象自身为空
前言 如何判断一个对象为空是我们在开发中经常会遇到的问题,今天我们来聊聊几种经常使用的方法,以及在不同的场景下我们如何去使用。 1\. JSON.stringify 方法可以使对象序列化,转为相应的 JSON 格式。 缺点:如果存在 、任意的函数以及 symbol 值,在序列化过程中会被忽略(出现在非数组对象的属性值中时)或者被转换成 (出现在数组中时)。 如下示例: 2\. for in 配合 hasOwnProperty 使用 对当...
能说说你对宏任务 和 微任务 的理解吗
一、背景 js 是一种单线程语言,只有一条通道,那么在任务多的情况下,就会出现堵塞,这种情况下就产生了 多线程,那么就产生了同步任务和异步任务。 同步任务: 在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务。是 由 js 执行栈/回调栈执行 的 异步任务: 不进入主线程、而进入任务队列的任务,当主线程中的任务运行完成了,才会从任务队列中取出异步任务,放入主线程中执行 二.宏任务和微任务 微任务和宏任务都是异步任务,它...
请自信的大声告诉面试官forEach跳不出循环
如果面试官,或者有人问你foreach怎么跳出循环,请你大声的告诉ta,跳不出!!!!!!!!!! 为什么呢? 先看看foreach大体实现。 两个输出的结果是一样的没啥问题,这就是foreach的大体实现,既然都知道了它的实现,那么对它为什么跳不出循环♻️应该都知道了,再不清楚的话,再看一下下面的例子。 在demo2函数里面调用demo函数,demo函数的return能阻止demo2函数下面的执行吗?很明显不行啊,demo函数里的re...