popring's Blog

前端打工人一枚,如果有有趣的问题,欢迎电邮,koler778@gmail.com。

0%

更多面经请移步:https://www.nowcoder.com/profile/464647589/myDiscussPost

微店

一面电面(25min 左右)

面了不到半个小时,我以为凉了,,,没想到中午约二面了

  • 自我介绍
  • ES 6 class 继承怎么理解
  • 深浅拷贝
  • 实现深拷贝思路
  • 如何判断函数、对象
  • 从 url 输入一个地址到页面渲染经历了什么
  • https 建立过程
  • 浏览器如何渲染页面,渲染过程(之前这里说的不够详细)
  • http 缓存(协商缓存少说一个,尴尬)
  • 强缓存返回 http code 是多少,协商缓存返回的 http code 是多少
  • http 2.0 聊一下
  • 自己实现一个脚手架,你觉得需要考虑什么
  • webpack 的 loader 和 plugin有自己写过,去了解它的原理吗
  • 总结自己,竞争前端岗位,你觉得自己有哪些优势

二面视频面(40min)

基本毫无准备,一天面两次,还是有点累的。

话说面试感觉面试官怕我是过来练手的,太难了。

  • 自我介绍
  • 介绍目前正在做的项目,在项目中负责的部分
  • 项目中遇到的困难
  • 栈和堆有什么区别
  • 有没有深入了解过 Vue,了解的 Vue 原理有哪些
  • 从 url 输入一个地址到页面渲染经历了什么
  • 知道的 HTTP 请求头有哪些
  • referer 知道是什么吗
  • 什么是跨域,如何解决
  • 浏览器本地缓存有什么,localStorage、sessionStorage、cookie 区别
  • cookie 不能使用 js 获取或设置吗(上一题说区别时候,说cookie 一般只在服务端调用就被问了)
  • cookie 有什么字段,http-only 作用是什么
  • ts 中对 装饰器 Decorators 怎么理解
  • 垂直居中布局
  • px、rpx、em、rem、vw/vh 区别
  • 有没有关注新技术的发展
  • 聊一下什么是微前端(上一个问题,我提到了一嘴,就被问了)
  • 场景题,移动端一个商品搜索结果页面,如果数据过大,怎么解决?(其实这里没有 get 到面试官想问的点,所以我就大概提了下服务端渲染和分页)
  • 还能怎么解决,导致前端卡顿,怎么优化(长列表怎么优化,滑动窗口)
  • 服务端渲染是什么
  • AST 有没有听过
  • 你觉得自己竞争有什么优缺点
  • 反问阶段

Vue官网找了一圈没找到关于在父组件中使用子组件,生命周期是如何运行的。

先说结论

  • 父组件 beforeCreatedcreatedbeforeMount
  • 子组件 beforeCreatedcreatedbeforeMountmounted
  • 父组件 mounted

若使用 props 进行父子组件传值(若只进行自身组件数据进行维护,只会执行自身组件的生命周期函数)

  • 父组件 beforeUpdate
  • 子组件 beforeUpdateupdated
  • 父组件 updated

销毁阶段

  • 父组件 beforeDestory
  • 子组件 beforeDestorydestoryed
  • 父组件 destoryed
阅读全文 »

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

注意:给定 n 是一个正整数。

示例 1:

输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。

  1. 1 阶 + 1 阶
  2. 2 阶
    示例 2:

输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶。

  1. 1 阶 + 1 阶 + 1 阶
  2. 1 阶 + 2 阶
  3. 2 阶 + 1 阶

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/climbing-stairs
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


阅读全文 »

首先配置仓库来源

天朝特殊环境,不得不配置为国内的源

打开终端并执行

1
2
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct

macOS 或 Linux

1
2
3
4
5
6
7
8

export GO111MODULE=on
export GOPROXY=https://goproxy.cn

# 或者
echo "export GO111MODULE=on" >> ~/.profile
echo "export GOPROXY=https://goproxy.cn" >> ~/.profile
source ~/.profile

windows

1
2
$env:GO111MODULE = "on"
$env:GOPROXY = "https://goproxy.cn"

相关Go资料

Goproxy 中国

Go语言101

Go官方语言规范 - 英文:据说看完此文档,Go基本就入门了

Go by Example:通过实践入门

7天用Go从零实现Web框架Gee教程

v-if

根据表达式的真假值来决定是否渲染,它会造成真实DOM元素的渲染和销毁。

v-show

根据表达式之真假值,切换元素的 display CSS property。

当条件变化时该指令触发过渡效果。

v-ifv-show 区别

  • v-if 会 “真正” 条件的渲染,它要确定事件监听器和子组件的正确创建和销毁(切换自组件会经历生命周期函数)
  • v-if 如果初始条件为假,则不会渲染,只有当值为真是才会进行渲染
  • v-show 无论在什么条件下都会进行渲染 DOM 元素,只是简单的切换 css 样式,来进行视觉上的显示和隐藏。
  • v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。如果元素频繁的切换,建议使用 v-show ;如果运行后条件很少改变,则使用 v-if
  • v-if 切换会造成回流和重绘,v-show 则会造成重绘。

结论

做了以下的实验,可以得出结论,

  • visibility: hidden; 只是在视觉上隐藏,但没有影响布局,但绑定的事件也无法触发。
  • display:none; 元素被彻底隐藏,在页面上完全不显示,不占位,无宽高
  • opacity: 0; 只会修改元素透明度,并不影响布局及事件触发。
阅读全文 »

问题描述

当前端使用 ajax 提交一个表单时,因网络缓慢等原因导致数据没有及时返回数据,导致用户没有得到正确的提示,以为未点中提交按钮,进而在此点击提交按钮,进行提交数据(多半会重复多次点击)

解决方法

  • 禁用按钮,并添加 loading 提示
  • 移除点击事件
  • 结合vue使用
阅读全文 »