# 一面
# 笔试题
# 请实现一个通用add方法,add参数为任意数量,如add(1, 2, 3) 输出6。
# 请实现Promise.all()。
# 请实现一个双向数据绑定。
# 算法题
/*
假如有三个词库,第一个词库的内容为发布、推出,第二个词库的内容为小度音箱、小度在家, 第三个词库的内容为 2020 新款、2019 再版。现需要制定一个规则,组合任意数量词库的内容,并输出结果。如规则为第二个词库+第三个词库+第一个词库,输出内容为
小度音箱 2020 新版发布 小度在家 2020 新版发布
小度音箱 2019 再版发布 小度在家 2019 再版发布
小度音箱 2020 新版推出 小度在家 2020 新版推出
小度音箱 2019 再版推出 小度在家 2019 再版推出
请编写函数gengertorWord,首先输入固定的第一个词库、第二个词库、第三个词库的内容,然后,输入规则(规则中的词库个数可以是任意个数的),输出对应内容。
*/
# 自我介绍
# ts 和 js 的区别
# es 和 js 的区别
# amd 和 esm 的区别
# 浏览器是否支持 esm
# webpack怎么进行首屏加载的优化
# 了解过 tree-shaking 吗
# 闭包为什么会有内存泄漏问题
# 了解过 nodejs 吗
# express 和 koa2、koa3 的区别
# 了解过 flex 布局吗
# 有8个子盒子,每个盒子宽100px,父盒子宽700px,那么它是一行显示还是会换行?
# 我想换行怎么实现?
# HTTP 和 HTTPS 的区别
# HTTPS 的加密如何实现
# 数字证书如何验证合法性
# 二面
# 自我介绍
# 输入URL到页面展示中的全过程
# 在这过程中的话涉及那些网络协议
# HTTP协议是否包括端口号
# 端口号是TCP协议的一部分?
# 为什么需要三次握手?
# 三次握手的全过程
# TCP连接如何确认连接方
# HTTPS的握手过程
# 证书的作用以及判断过程
# 建立SSL连接之后,是对称还是非对称加密
# 为什么会有跨域的问题
# 跨域的网络情况大概是怎样
# 除了常规的GET、POST以外,DELETE等请求也是这个流程
# 解决方案
# jsonp为什么可以实现跨域呢
# 除了script标签,还有哪些标签支持跨域请求
# 直接使用表单提交请求,会有跨域问题吗
# websocket 建立过程是怎样的
# 代码题
// 实现一个函数,输入工资,返回应该缴纳的税费
// 其中税率规则如下:
// 0~5000元不需要交税
// 5000~8000元 3%
// 8000~20000元 5%
// 20000以上 10%
function cal(price: number): number {
const rules = getTaxRules(price)
const last = rules.pop()
return (price - last.begin) * last.tax +
rules.reduce((pre, cur) => pre + (cur.end - cur.begin) * cur.tax, 0)
}
const TAX_RULE = [
{ begin: 0, end: 5000, tax: 0 },
{ begin: 5000, end: 8000, tax: 0.03},
{ begin: 8000, end: 20000, tax: 0.05},
{ begin: 20000, tax: 0.1}
]
function getTaxRules(price: number): typeof TAX_RULE {
return TAX_RULE.filter(function (item) {
return price >= item.begin
})
}
# 面向对象编程中的三个特征
封装、继承、多态
# 面向对象编程中的五个规则
单一原则、开闭原则、替换原则、依赖原则、接口分离原则