获得徽章 0
- ###### JS的基本概念
1、数据类型
+ 对象:数组、函数
+ 基本类型:字符串、undefined、数字、null、symbol、bigInt、布尔
2、作用域:变量的可访问性和可见性
静态作用域:通过它就能够预测代码在执行过程中如何查找标识符展开评论点赞 - 5、定位 Position
+ relative:元素相对于自己原来在文档流中的文职进行定位,但是原来文档流的空间还在
+ absolute:元素被移出正常文档流,且没有预留空间,相对于最近的非static定位祖先元素进行定位。
+ fixed:元素被移出正常文档流,且没有预留空间,相对于屏幕视口进行定位,屏幕滚动也不会改变位置
+ sticky:元素相对它的最近滚动祖先(祖先的overflow是scroll/hidden/auto)的视口定位展开评论点赞 - 1、样式表来源(优先程度递增)
+ 用户代理样式:浏览器默认样式
+ 用户样式表:很少有
+ 作者样式表:developer写的
+ 作者样式表中的!important
+ 用户样式表中的!important
+ 用户代理样式中的!important展开评论点赞 - ###### 浏览器架构
+ 单进程架构:所有模块运行在同一个进程里,包括网络、插件、JavaScript运行环境
+ 多进程架构:主进程、网络进程、渲染进程、CPU进程、插件进程
+ 面向服务进程:将原来的UI、数据库、文件、设备、网络等,作为一个独立的基础服务展开评论点赞 - 过程式编程
+ 自顶向下
+ 结构化编程
+ JS中的面向过程
+ 面向对象编程
+ 封装:关联数据与算法
+ 继承:无需重写的情况下进行功能扩充
+ 多态:不同的结构可以进行接口共享,进而达到函数复用
+ 依赖注入:去除代码耦合
+ 五大原则:
+ 单一职责原则SRP
+ 开放封闭原则OCP
+ 里式替换原则LSP
+ 依赖倒置原则DIP
+ 接口分离原则ISP
+ 函数式编程
+ 函数是第一等公民
+ 纯函数 无副作用
+ 高阶函数 闭包
+ 优势
+ 可缓存
+ 可移植
+ 可测试
+ 可推理
+ 可并行
+ Functor:可以做为容器的类型,类型支持对容器内元素进行操作
+ Monad:可以去除嵌套容器的容器类型(去除嵌套的Observable)
+ Applicative:直接对两个容器直接操作
+ 响应式编程 Observable (观察者模式、迭代器模式、Promise / EventTarget超集)
+ 数据流
+ 响应式变成的compose
+ 合并
+ 过滤
+ 转化
+ 异常处理
+ 多播
+ 操作符
+ 过滤
+ 合并
+ 转化
+ 高阶展开评论点赞 - 管道:管道与管道符 | ,作用是将前一个命令的结果传递给后面的命令
语法: cmd1 | cmd2
要求:管道右侧的命令必须能接受标准输入才行,比如grep命令,ls、mv等不能直接使用,可以使用xargs预处理
注意:管道命令紧紧处理stdout,对于stderr会予以忽略,可以使用set -o pipefail 设置 shell 遇到管道错误退出展开评论点赞 - 进程调度:操作系统按某种策略或规则选择进程占用CPU进行运行的过程
+ R,可执行状态
+ S,可中断的睡眠状态
+ D,不可中断的睡眠状态
+ T,暂停状态或跟踪状态
+ Z,退出状态,进程成为i僵尸进程
+ X,退出状态,进程即将被销毁展开评论点赞 - 计算机硬件,计算机由五大基本单元组成:控制器、运算器、存储器单元、 输入单元、输出单元,计算机操作系统:管理和控制计算机系统中的硬件和软件资源,用于在用户与系统硬件之间传递信息评论点赞
- 协议:协议的存在依赖于连接
协议定义了在两个或多个通信实体之间交换的报文格式和顺序,以及报文发送和/或接受一条报文或其他事件所采取的动作。
网络协议基本结构:标头和载荷 --> 标头:快递面单,载荷:包裹内的东西展开评论点赞 - 前端开发:组件化/模块化
@1 有利于团队协作开发
@2 便于组件的复用:提高开发效率、方便后期维护、减少页面中的冗余代码
如何划分组件
业务组件:针对项目需求封装的
@1 普通业务组件 [没有复用性,只是单独拆出来的一个模块]
@2 通用业务组件 [具备复用性]
功能组件:适用于多个项目 [例如:UI组件库中的组件]
@1 通用功能组件
组件化开发 带来工程化的处理
基于webpack等工具(vite/rollup/turbopack...)
+ 实现组件的合并、压缩、打包等
+ 代码编译、兼容、校验展开赞过评论1