面试提问思路总结
面试问题我分为这么几大块:
1 基础 html、css、js
2 浏览器HTTP相关
3 框架/构建相关 (vue、react、node、webpack...)
4 手写代码 (常见算法、其他编程题)
5 性能优化
下面列举一些常见面试提问思路
CSS
盒模型
flex:1 含义 → 适用场景
响应式布局实现 → rem/em 区别、媒体查询 → 其他常见布局实现 → 居中
BFC原理 → 如何创建 → 应用场景
移动端像素知识与viewport知识
sass/less特性、区别 → 怎么自己封装样式库 → css-loader/style-loader区别
JS
作用域、原型链、闭包、继承、类型判断、V8 GC
基础API、ES6/7/8新特性 → babel原理
函数式编程、高阶函数、柯里化、递归、模块化
DOM操作、事件流、事件方法
PS: 异步单独拿出来列一下
异步
promise解决了什么问题、实现原理、使用场景
promise.all 概念、 怎么实现 → 用promise实现请求并发个数限制 → 希望即使前一个异步操作失败,也不要中断后面的异 ...
2021影视记录
2021 已看电影《盗梦空间》(五星好评)《猫鼠游戏》《禁闭岛》《看不见的客人》(五星好评)《隧道尽头》《致命魔术》《蝴蝶效应》《七宗罪》《致命ID》《7号房的礼物》《超脱》《第六感》《消失的爱人》《阳光姐妹淘》《记忆大师》《利刃出鞘》《逃出循环》《网络谜踪》《恐怖游轮》《64号病历》《东方快车谋杀案》《黑客帝国》
PS:周末在家和小姐妹/同事一起看的电影,基本都是从豆瓣TOP250或者高分悬疑片挑的
2021 已刷综艺《吐槽大会》《令人心动的offer》刷了第二季、第三季
《初入职场的我们》看了一大半,弃了
《听姐说》女明星毕竟不是专业的脱口秀演员,卖力是一回事,质量是另一回事≖ہ≖看了一半,弃了
《五十公里桃花坞》大型社交现场,但没啥意思≖ہ≖看了一半,弃了
《心动的信号》第四季2倍速刷一下,观后感:
1 第一眼就基本能确定有没有可能了,毕竟每个人都有自己的审美~2 可选择范围真太小了,若都没看对眼,这节目就挺没意思了,不过观察人类还是有点意思,所以断断续续追更一下3 吐槽一下侦探团真是太水了
《上班啦妈妈》这部综艺看的比较快,一两天时间刷了下,就以下一些感觉吧
1 其实面试几分 ...
机器学习笔记
概念通过学习如何【组合输入信息】来对从未见过的数据做出有用的【预测】
术语标签: 要预测的事物特征: 输入变量样本: 特定实例 (分为有标签样本和无标签样本)模型: 定义特征与标签的关系训练: 创建或学习模型 (通过有标签样本学习)推断: 将训练后的模型应用于无标签样本损失: 是一个数值,表示对于单个样本而言模型预测的准确程度。平方损失:一种常见的损失函数 (y - y’)2均方误差 (MSE) :每个样本的平均平方损失。要计算 MSE,请求出各个样本的所有平方损失之和,然后除以样本数量。
如何降级损失迭代试错梯度下降法/随机梯度下降法优化学习速率/步长
过拟合过拟合模型在训练过程中产生的损失很低,但在预测新数据方面的表现却非常糟糕。
奥卡姆剃刀定律机器学习模型越简单,良好的实证结果就越有可能不仅仅基于样本的特性。
泛化1.随机抽取独立同分布 (i.i.d) 的样本,即样本之间不会互相影响2.分布是平稳的;即分布在数据集内不会发生变化3.从同一分布的数据划分中抽取样本
训练集用于训练模型的子集
测试集用于测试训练后模型的子集1.规模足够大,可产生具有统计意义的结果。2.能代表整个数 ...
vue3学习笔记
对于熟悉vue2的小伙伴来说,如何在vue2的基础上快速全面地理解和掌握vue3呢?
Q: 相对于vue2来说,vue3做了哪些改变?
分为两个层面来说,一个是实现层面,一个是运用层面。
实现层面1. 响应式原理的实现方式使用 proxy 代替 defineProperty(proxy不兼容IE)
vue2的缺陷:1 defineProperty无法监听数组方法变化,但是vue2对数组的八个方法做了hack2 defineProperty可以监控数组下标变化,只是考虑到性能的问题,vue2放弃了这个特性,所以 arr[1] = 3 在vue2并不会触发数据更新3 defineProperty无法监听数组长度变化4 defineProperty无法检测到对象属性的新增或删除,vue2使用this.$set/this.$delete来解决
2. Diff算法的提升
将一个模板分成由结构指令分隔的嵌套“块”,当我们更新块中的节点时,我们不再需要递归遍历DOM树 - 该块内的动态绑定可以在一个平面数组中跟踪。
检测模板中的静态节点、子树甚至数据对象,在生成的代码中将它们提升到渲染函数之 ...
typescript学习笔记
typescriptJavaScript 是动态类型,没有编译阶段,运行时才会进行类型检查
TypeScript 是静态类型,有编译阶段,译阶段就会进行类型检查
即 Ts → 编译阶段(类型检查) → Js
Ts 完全兼容 Js,可以和 Js 共存
any 任意值void 没有任何返回值的函数自动类型推论如果定义的时候没有赋值,不管之后有没有赋值,都会被推断成 any 类型而完全不被类型检查
联合类型let myFavoriteNumber: string | number;
接口(抽象类)Interface赋值的时候,变量的形状必须和接口的形状保持一致1 可以用可选属性 age?: number;2 可以添加任意属性 [propName: string]: any;一旦定义了任意属性,那么确定属性和可选属性的类型都必须是它的类型的子集3 只读属性,只能在创建的时候被赋值 readonly id: number;
12345678910111213141516interface Person { readonly id: number; name: string ...
带你了解字符编码的前世今生
1946 计算机诞生1946 年,世界第一台计算机诞生了。计算机由硬件和系统软件组成,它最基本的功能就是存储、表示与处理信息。通俗地说,信息其实就是由各种各样的字符组成,比如英文字母、汉字以及其他国家的语言等。那么计算机如何才能表示这些各种各样的字符呢?
于是有一群人想到,我们可以用8个晶体管的“通”或“断”组合出一些不同的状态,来表示信息。“通”用 1 表示,“断”用 0 表示,这样一个由值 0 和 1 组成的长度为 8 的位序列,就代表着一个字节,八个二进制位可以组合出 256 种状态,这样一个字节就可以表示 256 种字符。
1967 ASCII计算机最先只在美国使用,他们把所有的空格、标点符号、数字、大小写字母分别用单个字节表示,一直编到了第128个,这样计算机就可以用不同字节来存储英语的文字了,于是美国制定了一套 ASCII 编码标准,用来规定这种英语字符与二进制位之间的关系。
这种方式就是用一个唯一的单字节大小的整数值来表示每个字符。ASCII 码一共规定了 128 个字符的编码,这 128 个符号,只占用了一个字节的后面 7 位,最前面的一位统一规定为 0。比如空格 SP ...