前端面试
Alive_tree
实事求是,不争论,发展是硬道理,摸着石头过河,韬光养晦与有所作为。
展开
-
如何用es5实现const
最近看到一个面试题第一题就把我撂倒了—— 用ES5实现const,const – es6中定义制只读常量的关键字。const PI = 3.1415926531、对象属性先看一下这个对象 var student ={}; student.name = 'cxx'; student.age = '16';然后我们修改一下 student.age = '16';我们修改了属性age的值,我们可以修改属性age的值,也可以删除属性age,这些操作称为对象属性的性质。所以原创 2020-08-06 15:13:00 · 2102 阅读 · 0 评论 -
什么是GPU加速
1、什么是GPU加速计算GPU,又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器,与CPU类似,只不过GPU是专为执行复杂的数学和几何计算而设计的,这些计算是图形渲染所必需的。随着人工智能的发展,如今的GPU已经不再局限于3D图形处理了。GPU 加速计算是指同时利用图形处理器 (GPU) 和 CPU,加快科学、分析、工程、消费和企业应用程序的运行速度。GPU 加速器于 2007 年由 NVIDIA® 率先推出,现已在世转载 2020-08-10 19:20:31 · 4004 阅读 · 0 评论 -
十分钟弄懂浏览器渲染机制面试题
1、浏览器的渲染过程是怎样的大致流程如下:HTML和CSS经过各自解析,生成DOM树和CSS树合并成渲染树根据渲染树进行布局最后调用GPU进行绘制,显示在屏幕上2、如何根据浏览器渲染机制加快首屏速度优化文件大小:HTML和CSS的加载和解析都会阻碍渲染树的生成,从而影响首屏展示速度,因此我们可以通过优化文件大小,减小css文件层级的方法来加快首屏速度避免资源下载阻塞文档解析:浏览器解析到3、什么是回流(重排),什么情况下会触发回流元素的尺寸和位置发生变化,就需要重新计算渲染树,这转载 2020-08-10 19:18:38 · 886 阅读 · 0 评论 -
JavaScript 引擎 V8 执行流程概述
本文主要讲解的是V8的技术,是V8的入门篇,主要目的是了解V8的内部机制,希望对前端,快应用,浏览器,以及nodejs同学有些帮助。这里不涉及到如何编写优秀的前端,只是对JS内部引擎技术的讲解。一、V8来源V8的名字来源于汽车的“V型8缸发动机”(V8发动机)。V8发动机主要是美国发展起来,因为马力十足而广为人知。V8引擎的命名是Google向用户展示它是一款强力并且高速的JavaScript引擎。V8未诞生之前,早期主流的JavaScript引擎是JavaScriptCore引擎。JavaScri转载 2020-08-10 16:15:54 · 2807 阅读 · 0 评论 -
js手写节流函数
防抖是延迟执行,而节流是间隔执行,函数节流即每隔一段时间就执行一次,实现原理为 设置一个定时器,约定XX毫秒后执行事件,如果时间到了,那么执行函数并重置定时器,和防抖的区别在于,防抖每次触发事件都重置定时器,而节流在定时器到时间后再清空定时器。1、原理:规定一个时间,n 秒,n秒内,将触发的事件合并为一次并执行。2、栗子:班车等人上来之后,5分钟之后开走,不等待,若5分钟还有人过来,也不重置时间。3、解读:函数节流(throttle),指的是某个函数在一定时间间隔内,只执行一次,在这3秒内产生函原创 2020-08-10 14:30:32 · 579 阅读 · 0 评论 -
前端的CSRF攻击和XSS攻击
1、什么是CSRF攻击CSRF即Cross-site request forgery(跨站请求伪造),是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。假如黑客在自己的站点上放置了其他网站的外链,例如"www.weibo.com/api ,默认情况下,浏览器会带着weibo.com的cookie访问这个网址,如果用户已登录过该网站且网站没有对CSRF攻击进行防御,那么服务器就会认为是用户本人在调用此接口并执行相关操作,致使账号被劫持。2、如何防御CSRF攻击1、验证Tok.转载 2020-08-07 16:33:22 · 430 阅读 · 3 评论 -
手写 js函数防抖
1、什么是防抖短时间内大量触发同一事件,只会执行一次函数。函数防抖(debounce),指触发事件后在一定时间(比如 3 秒)内函数只能执行一次,如果这段时间(3 秒)内又触发了事件,则会重新计算函数执行时间。2、为什么要防抖我们在滚动屏幕的时候,一秒可以轻松出发多次事件,如果每次事件都请求数据,而且如果事件处理逻辑复杂,浏览器的压力会很大,输入框、滚动条的监听事件处理,如果不做防抖,每输入一个字或者滚动一下屏幕,都会请求数据,这样会造成性能浪费,用户体验也会很糟糕。3、防抖原理设置一个定时原创 2020-08-07 16:03:25 · 1026 阅读 · 1 评论 -
手写call()
call()为this函数/方法提供新的值,使用call(),您可以编写一次方法,然后在另一个对象中继承该方法 ,而不必为新对象重写该方法。注意:虽然apply()与call()方法一致,但是基本区别call()接受参数列表,而apply()接受参数数组。语法function.call(thisArg, arg1, arg2, ...)call()的原理比较简单,由于函数的this指向它的直接调用者,我们变更调用者即可完成This指向的变更。先看个例子//定义一个方法 func.原创 2020-08-07 12:06:14 · 305 阅读 · 0 评论