掘友等级
获得徽章 8
#每天一个知识点# 如何学习前端?
简单点归纳:
多看:多看书,多看规范,多看优秀的网站,多看优秀的代码
多问:多问几个为什么?多问几个出处?多问几个原由
多做:多做练习,实战出真理;多做,才能有更多经验
多想:多思考几个为什么?
多总结:多总结看到、想到的、听到的,这些沉淀下来的都是你自己的
#每天一个知识点# 从数组中删除重复项
在 JavaScript 中,Set 是一个集合,它允许你仅存储唯一值。这意味着删除任何重复的值。
因此,要从数组中删除重复项,你可以将其转换为集合,然后再转换回数组。
const numbers = [1, 1, 20, 3, 3, 3, 9, 9];
const uniqueNumbers = [...new Set(numbers)]; // -> [1, 20, 3, 9]
#每天一个知识点# 线程和进程区分不清?
- 工厂的资源 -> 系统分配的内存(独立的一块内存)
- 工厂之间的相互独立 -> 进程之间相互独立
- 多个工人协作完成任务 -> 多个线程在进程中协作完成任务
- 工厂内有一个或多个工人 -> 一个进程由一个或多个线程组成
- 工人之间共享空间 -> 同一进程下的各个线程之间共享程序的内存空间(包括代码段、数据集、堆等)
#每天一个知识点# 命名路由搭配params,刷新页面参数会丢失
查询参数搭配query,刷新页面数据不会丢失
接受参数使用this.$router后面就是搭配路由的名称就能获取到参数的值
#每天一个知识点# Object.getOwnPropertyNames() 遍历对象的属性
Object.getOwnPropertyNames方法与Object.keys类似,也是接受一个对象作为参数,返回一个数组,包含了该对象自身的所有属性名。但它能返回不可枚举的属性。
const arr = ['Hello', 'World'];
Object.keys(arr) // ["0", "1"]
Object.getOwnPropertyNames(arr) // ["0", "1", "length"]
#每天一个知识点# 检查一个对象是否为空对象
const isEmpty = obj => Reflect.ownKeys(obj).length === 0 && obj.constructor === Object
isEmpty({}) // true
isEmpty({ name: 'fatfish' }) // false
#每天一个知识点# 判断手机是Andoird还是IOS
#周末怎么过#
要命哦
#每天一个知识点# 检查变量是否为数组
有几种方法可以检查变量是否为数组,但这是我的首选方法——干净且易于理解。
const isArray = (arr) => Array.isArray(arr)
#每天一个知识点# SOA架构
在分布式的基础上,增加服务注册中心,相当于增加一个nacos,对比分布式,可以丢弃老的http发送机制,通过nacos统一调用和获取每个服务的资源。
优点:
服务注册中心,可以解决每个服务自动发现,注册,调度问题。
就算某个服务的地址更改也不影响其他服务对他的请求。
缺点:
每个服务高度依赖注册中心,如果注册中心宕机,会引起每个服务调用资源失败。
调用链路变长,如果下游服务发送错误,会导致上游服务调用失败。
下一页