首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
十一21
获赞
67
粉丝
3
关注
0
看过 TA
2
浙江大学
2021
前端工程师
IP属地:上海
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑十一21吗?
发布(35)
评论
刷题
收藏
十一21
关注TA,不错过内容更新
关注
2020-06-09 23:35
已编辑
浙江大学 前端工程师
vivo前端笔试小记
不确定有没有记错,记录一下vivo笔试题题目。个人第一次笔试,感觉题目不难,但是之前没怎么刷过题,熟练度不够,做的太惨,继续努力! 1.第一题是花园种树题。给花园地的长度和一个0与1的数字序列。1表示种了花,0表示空地。花和花之间需要有一个空格才能栽种。输出能够种的花的数量。例如51 0 0 0 0返回是2 2.第二题是测试手机防摔功能。给两个数字,K,V。K表示有多少部手机,V表示楼层数目。返回测试出结果至少要的次数。比如 K是1 V是2如果在第一层 往下摔手机,如果摔坏了。抗摔能力就是0层如果没摔坏,第二层摔手机,如果坏了,抗摔能力就是1层如果没坏,抗摔能力就是2层。所以要测试出结果,需要...
0
点赞
评论
收藏
分享
2020-06-09 00:02
已编辑
浙江大学 前端工程师
js内存泄漏和垃圾回收机制
内存泄漏程序中已动态分配的堆内存由于某种原因程序未释放或无法释放引发的问题。程序的运行需要内存,只要程序提出要求,操作系统或者运行时就必须提供内存。对于持续运行的服务进程,必须及时释放内存,否则,内存占用越来越高,轻则影响系统性能,重则导致进程崩溃。不再用到的内存,没有及时释放,就叫做内存泄漏。C需要手懂申请内存释放内存。而JS采用垃圾回收机制,自动释放内存。垃圾回收机制垃圾收集器会定期找出那些不再继续使用的变量。然后释放内存。1.标记清除法js种最常用的垃圾回收方式是标记清除法。当变量进入环境时,例如在一个函数种声明一个变量,该变量就进入环境。从逻辑上讲,进入环境的变量在执行流进入环境时,就...
0
点赞
评论
收藏
分享
2020-06-07 13:39
已编辑
浙江大学 前端工程师
VUE的响应式原理
vue的内部使用Oject.defineProperty()来实现数据响应式。vue.js 则是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。vue通过遍历传入data选项的所有对象属性,并使用defineProperty把这些property全部转换成getter/setter。getter是获取某个特定属性的值的方法。setter是设定某个属性值的方法。getter/setter对用户来说是不可见的。每个组件实例都对应一个watcher实例,它会在组件...
0
点赞
评论
收藏
分享
2020-06-06 23:52
已编辑
浙江大学 前端工程师
requestAnimationFrame
浏览器直接处理dom的速度慢。因为用js修改dom,涉及到js引擎和DOM渲染引擎两个线程。设计到线程间通信,以及页面的回流和重绘。几万个DOM插入的操作肯定会到来卡顿。所以要分批次渲染。HTML5提供了一个请求动画的接口requestAnimationFrame setTimeout:通过设定间隔时间来不断改变图像位置,达到动画效果。因为异步在同步任务之后执行且执行时间和刷新频率不一定一致,所以实际执行时间晚于设定时间,容易出现卡顿、抖动的现象,会引起丢帧。 requestAnimationFrame:优势:1.由系统决定回调函数的执行时机。60Hz的刷新频率,那么每次刷新的间隔中会执行一次...
0
点赞
评论
收藏
分享
2020-06-21 21:25
已编辑
浙江大学 前端工程师
js执行机制
线程是进程中的最小单位。执行一段指令所需的时间。打开tab相当于创建一个进程,http请求则是一个线程。js是单线程执行的。JS运行的时候会阻止dom解析渲染。如果js可能修改dom时页面还在解析,则会浪费。这就是单线程的好处。 HTML5允许多线程。开始执行js代码时,把任务分成同步和异步任务。同步任务放入执行栈。异步任务会进入异步进程处理,事件函数等待事件发生,定时函数等待延时时间到,然后进入任务队列中。先执行执行栈中的同步任务。等执行栈空了,再按照次序读取任务队列(消息队列)中的异步任务到执行栈开始执行。主线程不断重复获取任务、执行任务的这种机制就叫做事件循环。 不同的任务源会被分配到不...
0
点赞
评论
收藏
分享
2020-06-25 10:32
已编辑
浙江大学 前端工程师
网页渲染流程
webkit渲染引擎大致结构图片中的实现部分是web渲染引擎的所有移植的共有部分,虚线是不同产商自主开发实现部分。操作系统是管理和控制计算机硬件和软件资源的计算机程序。任何其他软件都要在操作系统的支持下运行。webkit也是在操作系统上工作。第三方库提供视频图像库支持webCore中包括HTML解析器,css解析器,dom和svg等。JSCore是webkit的默认引擎。在google系列中被替换成v8引擎。webkit ports是非共享部分,也是不同浏览器性能不同功能差异的关键部分。 渲染流程1.浏览器接收到HTML文件转换成DOM树。浏览器接收到字节数据,转换成字符串,网页字符串交给HT...
0
点赞
评论
收藏
分享
2020-06-06 22:49
已编辑
浙江大学 前端工程师
js中V8引擎
编译型语言:在程序执行之前必须进行专门的编译过程。只要编译一次,翻译成机器语言,之后无须重编译。执行效率高,但是跨平台性能较差。解释性语言:程序运行时才编译。不直接变成机器语言,先翻译成中间代码,再由解释器对中间代码进行解释运行。因此解释性语言的效率较低。js本质是解释性语言,它需要一边执行一边解析。js引擎的执行过程大致是:源代码 抽象语法树 字节码 JIT 本地代码 随着web发展,要求js能够快速被解析执行。v8引擎就是为了解决这一问题。node也是采用该引擎解析js。V8使用c++开发,其js编译成原生机器码,让js运行速度媲美二进制程序。在V8中,JavaScript相关代码并非一下...
0
点赞
评论
收藏
分享
2020-06-06 20:37
浙江大学 前端工程师
MVP、MVC、MVVM
MVC模式分成三个部分Model(模型):数据保存view(视图):用户界面controller(控制器):业务逻辑view触发指令到controller,controller完成业务逻辑后,要求model改变状态,model将新的数据发送到view用户得到反馈。 MVP模式是Model-View-PresenterModel提供数据,View负责显示 Presenter处理业务逻辑。将视图和模型进一步分离。使得有大量的代码操作dom中presenter中。MVC模式的区别是view不再直接使用model,而是通过presenter通信。MVVM模式。Model View View-Model...
0
点赞
评论
收藏
分享
2020-06-06 20:01
浙江大学 前端工程师
设计模式
设计模式就是一套写代码的方式,通过这种方式写的代码更容易维护和复用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案,代表了最佳的实践。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 创建型设计模式这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活 属于这一类的一些模式是:工厂模式(Factory),抽象工厂模式 (Abstract),原型模式 (Prototype),单例模式 (Singleton)以及 建造者模式(Builder)。 结构设计...
0
点赞
评论
收藏
分享
2020-06-05 12:12
浙江大学 前端工程师
预加载和预渲染
1.什么是预加载资源预加载是另一个性能优化技术,我们可以使用该技术来预先告知浏览器某些资源可能在将来会被使用到。预加载简单来说就是将所有所需的资源提前请求加载到本地,这样后面在需要用到时就直接从缓存取资源。 2.为什么要用预加载在网页全部加载之前,对一些主要内容进行加载,以提供给用户更好的体验,减少等待的时间。否则,如果一个页面的内容过于庞大,没有使用预加载技术的页面就会长时间的展现为一片空白,直到所有内容加载完毕。
0
点赞
评论
收藏
分享
2020-06-05 12:13
已编辑
浙江大学 前端工程师
DNS预解析
DNS全称为Domain Name System,即域名系统,是域名和IP地址相互映射的一个分布式数据库。域名解析即通过主机名,最终得到该主机名对应的IP地址的过程。DNS请求需要的带宽非常小,但是延迟却有点高,这点在手机网络上特别明显,而一次典型的DNS解析一般需要20-200ms,所以DNS预解析可以让延迟明显减少一些。 DNS预解析是浏览器试图在用户访问链接之前解析域名,这是计算机的正常DNS解析机制。域名解析后,如果用户确实访问该域名,那么DNS解析时间将不会有延迟。遇到网页中的超链接,DNS prefetching从中提取域名并将其解析为IP地址,这些工作在用户浏览网页时,使用最少的...
0
点赞
评论
收藏
分享
2020-06-05 12:14
已编辑
浙江大学 前端工程师
什么是CDN
CDN 内容分发网络:content delivery network CDN是通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上,提高用户访问网站的响应速度和成功率我们可以将静态资源尽量使用 CDN 加载,由于浏览器对于单个域名有并发请求上限,可以考虑使用多个 CDN 域名。 主要特点: 1、本地Cache加速,提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,并大大提高以上性质站点的稳定性 2、镜像服务消除了不同运营商...
0
点赞
评论
收藏
分享
2020-06-05 11:25
浙江大学 前端工程师
节流和防抖
节流 连续触发的事件每隔一段时间执行。防抖 连续触发的事件只执行一次,事件停下一段时间后才能继续触发下一次。 使用场景: 节流: 可以将一些事件降低触发频率。比如懒加载时要监听计算滚动条的位置,但不必每次滑动都触发,可以降低计算的频率,而不必去浪费资源;另外还有做商品预览图的放大镜效果时,不必每次鼠标移动都计算位置。 防抖:一般可以使用在用户输入停止一段时间过后再去获取数据,而不是每次输入都去获取。 节流函数 定时函数版 function throttle(fn, delay) { let timer = null; return function(){ if(timer) return ...
0
点赞
评论
收藏
分享
2020-06-04 21:07
浙江大学 前端工程师
前端图片优化
图片大小计算一张100100的图片,4个通道,每个通道1字节,图片大小就是10010041/1024 = 39kb所以压缩图片的方式 减少像素点 减少每个像素点能够显示的颜色 图片加载优化1.减少请求次数 很多时候会使用到很多修饰类图片,其实这类修饰图片完全可以用 CSS 去代替。 对于移动端来说,屏幕宽度就那么点,完全没有必要去加载原图浪费带宽。一般图片都用 CDN 加载,可以计算出适配屏幕的宽度,然后去请求相应裁剪好的图片。 小图使用 base64 格式 将多个图标文件整合到一张图片中(雪碧图) 2.选择正确的图片格式: 对于能够显示 WebP格式的浏览器尽量使用 WebP 格式...
0
点赞
评论
收藏
分享
2020-06-22 15:32
已编辑
浙江大学 前端工程师
变量提升和暂时性死区
在es中存在函数提升和变量提升,函数提升优于变量提升。函数提升会把函数定义挪到整个作用域的顶部。变量提升把变量的定义挪到作用域顶部,但是不赋值。因为变量提升,所以代码中变量可以在定义前使用。当有多个同名变量声明的时候,函数声明会覆盖其他的声明。如果有多个函数声明,则是由最后的一个函数声明覆盖之前所有的声明。es6中新增的let和const关键字没有变量提升,同时他们有块级作用域。块级作用域中存在let和const关键字,作用域中的变量和它们绑定,不再受外部的影响,不能在定义前使用。在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”(temporal de...
0
点赞
评论
收藏
分享
1
2
3
创作者周榜
更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务