首页 » 人工智能 » 拧一拧web前端面试试题螺丝争取面试经由进程造航母的船,事宜是什么意思?。

拧一拧web前端面试试题螺丝争取面试经由进程造航母的船,事宜是什么意思?。

北京清尚建筑装饰工程通讯 2024-10-15 0

扫一扫用手机浏览

文章目录 [+]

怎么去设计一个组件封装?

1.组件封装的目的是为了重用,提高开拓效率和代码质量

拧一拧web前端面试试题螺丝争取面试经由进程造航母的船 拧一拧web前端面试试题螺丝争取面试经由进程造航母的船 人工智能

2.低耦合,单一职责,可复用性,可掩护性

拧一拧web前端面试试题螺丝争取面试经由进程造航母的船 拧一拧web前端面试试题螺丝争取面试经由进程造航母的船 人工智能
(图片来自网络侵删)

3.前端组件化设计思路

js 异步加载的办法

1.渲染引擎碰着 script 标签会停下来,等到实行完脚本,连续向下渲染

2.defer 是“渲染完再实行”,async 是“下载完就实行”,defer 如果有多个脚本,会按照在页面中涌现的顺序加载,多个async 脚本不能担保加载顺序

3.加载 es6模块的时候设置 type=module,异步加载不会造成壅塞浏览器,页面渲染完再实行,可以同时加上async属性,异步实行脚本(利用顶层的this即是undefined这个语法点,可以侦测当前代码是否在 ES6 模块之中)

css 动画和 js 动画的差异

1.代码繁芜度,js 动画代码相对繁芜一些

2.动画运行时,对动画的掌握程度上,js 能够让动画,停息,取消,终止,css动画不能添加事宜

3.动画性能看,js 动画多了一个js 解析的过程,性能不如 css 动画好

XSS 与 CSRF 两种跨站攻击

1.xss 跨站脚本攻击,紧张是前端层面的,用户在输入层面插入攻击脚本,改变页面的显示,或者盗取网站 cookie,预防方法:不相信用户的所有操作,对用户输入进行一个转义,不许可 js 对 cookie 的读写

2.csrf 跨站要求假造,以你的名义,发送恶意要求,通过 cookie 加参数等形式过滤

3.我们没法彻底杜绝攻击,只能提高攻击门槛

事宜委托,目的,功能,写法

1.把一个或者一组元素的事宜委托到它的父层或者更外层元素上

2.优点,减少内存花费,动态绑定事宜

3.target 是触发事宜的最详细的元素,currenttarget是绑定事宜的元素(在函数中一样平常即是this)

4.JavaScript 事宜委托详解

线程,进程

1.线程是最小的实行单元,进程是最小的资源管理单元

2.一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程

负载均衡

1.当系统面临大量用户访问,负载过高的时候,常日会利用增加做事器数量来进行横向扩展,利用集群和负载均衡提高全体系统的处理能力

什么是CDN缓存

1.CDN 是一种支配策略,根据不同的地区支配类似nginx 这种做事做事,会缓存静态资源。
前端在项目优化的时候,习气在讲台资源上加上一个 hash 值,每次更新的时候去改变这个 hash,hash 值变革的时候,做事会去重新取资源

2.(CDN)是一个经策略性支配的整体系统,包括分布式存储、负载均衡、网络要求的重定向和内容管理4个要件

闭包的写法,闭包的浸染,闭包的缺陷

1.利用闭包的目的——隐蔽变量,间接访问一个变量,在定义函数的词法浸染域外,调用函数

2.闭包的内存透露,是IE的一个 bug,闭包利用完成之后,收回不了闭包的引用,导致内存透露

3.闭包造成内存透露的实验

跨域问题,谁限定的跨域,怎么办理

1.浏览器的同源策略导致了跨域

2.用于隔离潜在恶意文件的主要安全机制

3.[jsonp ,许可 script 加载第三方资源]segmentfault.com/a/11...

4.nginx 反向代理(nginx 做事内部配置 Access-Control-Allow-Origin )

5.cors 前后端协作设置要求头部,Access-Control-Allow-Origin 等头部信息

6.iframe 嵌套通讯,postmessage

javascript 中常见的内存透露陷阱

1.内存透露会导致一系列问题,比如:运行缓慢,崩溃,高延迟

2.内存透露是指你用不到(访问不到)的变量,依然霸占着内存空间,不能被再次利用起来

3.意外的全局变量,这些都是不会被回收的变量(除非设置 null 或者被重新赋值),特殊是那些用来临时存储大量信息的变量

4.周期函数一贯在运行,处理函数并不会被回收,jq 在移除节点前都会,将事宜监听移除

5.js 代码中有对 DOM 节点的引用,dom 节点被移除的时候,引用还坚持

6.JavaScript 中 4 种常见的内存透露陷阱

babel把ES6转成ES5或者ES3之类的事理是什么

1.它便是个编译器,输入措辞是ES6+,编译目标措辞是ES5

2.babel 官方事情事理

3.解析:将代码字符串解析成抽象语法树

4.变换:对抽象语法树进行变换操作

5.再建:根据变换后的抽象语法树再天生代码字符串

Promise 仿照终止

1.当新工具保持“pending”状态时,原Promise链将会中止实行。

2.return new Promise(()=>{}); // 返回“pending”状态的Promise工具

3.从如何停掉 Promise 链提及(promise内存泄露问题)

promise 放在try catch里面有什么结果

1.Promise 工具的缺点具有冒泡性子,会一贯向后通报,直到被捕获为止,也即是说,缺点总会被下一个catch语句捕获

2.当Promise链中抛出一个缺点时,缺点信息沿着链路向后通报,直至被捕获

网站性能优化

1.http 要求方面,减少要求数量,要求体积,对应的做法是,对项目资源进行压缩,掌握项目资源的 dns 解析在2到4个域名,提取公告的样式,公共的组件,雪碧图,缓存资源,

2.压缩资源,提取公共资源压缩,提取 css ,js 公共方法

3.不要缩放图片,利用雪碧图,利用字体图表(阿里矢量图库)

3.利用 CDN,抛开无用的 cookie

4.减少重绘重排,CSS属性读写分离,最好不要用js 修正样式,dom 离线更新,渲染前指定图片的大小

5.js 代码层面的优化,减少对字符串的打算,合理利用闭包,首屏的js 资源加载放在最底部

js 自定义事宜实现

1.原生供应了3个方法实现自定义事宜

2.createEvent,设置事宜类型,是 html 事宜还是 鼠标事宜

3.initEvent 初始化事宜,事宜名称,是否许可冒泡,是否阻挡自定义事宜

4.dispatchEvent 触发事宜

angular 双向数据绑定与vue数据的双向数据绑定

1.二者都是 MVVM 模式开拓的范例代表

2.angular 是通过脏检测实现,angular 会将 UI 事宜,要求事宜,settimeout 这类延迟,的工具放入到事宜监测的脏行列步队,当数据变革的时候,触发 $diget 方法进行数据的更新,视图的渲染

3.vue 通过数据属性的数据挟制和发布订阅的模式实现,大致可以理解成由3个模块组成,observer 完成对数据的挟制,compile 完成对模板片段的渲染,watcher 作为桥梁连接二者,订阅数据变革及更新视图

get与post 通讯的差异

1.Get 要求能缓存,Post 不能

2.Post 相对 Get 安全一点点,由于Get 要求都包含在 URL 里,且会被浏览器保存历史记录,Post 不会,但是在抓包的情形下都是一样的。

3.Post 可以通过 request body来传输比 Get 更多的数据,Get 没有这个技能

4.URL有长度限定,会影响 Get 要求,但是这个长度限定是浏览器规定的,不是 RFC 规定的

5.Post 支持更多的编码类型且不对数据类型限定

有没有去研究webpack的一些事理和机制,怎么实现的

1.解析webpack配置参数,合并从shell传入和webpack.config.js文件里配置的参数,生产末了的配置结果。

2.注册所有配置的插件,好让插件监听webpack构建生命周期的事宜节点,以做出对应的反应。

3.从配置的entry入口文件开始解析文件构建AST语法树,找出每个文件所依赖的文件,递归下去。

4.在解析文件递归的过程中根据文件类型和loader配置找出得当的loader用来对文件进行转换。

5.递归完后得到每个文件的终极结果,根据entry配置天生代码块chunk。

6.输出所有chunk到文件系统。

ES6模块与CommonJS模块的差异

1.CommonJs 模块输出的是一个值的拷贝,ES6模块输出的是一个值的引用

2.CommonJS 模块是运行时加载,ES6模块是编译时输出接口

3.ES6输入的模块变量,只是一个符号链接,以是这个变量是只读的,对它进行重新赋值就会报错

模块加载AMD,CMD,CommonJS Modules/2.0 规范

1.这些规范的目的都是为了 JavaScript 的模块化开拓,特殊是在浏览器真个

2.对付依赖的模块,AMD 是提前实行,CMD 是延迟实行

3.CMD 推崇依赖就近,AMD 推崇依赖前置

Node 事宜循环,js 事宜循环差异

1.Node.js 的事宜循环分为6个阶段

2.浏览器和Node 环境下,microtask 任务行列步队的实行机遇不同

3.Node.js中,microtask 在事宜循环的各个阶段之间实行

4.浏览器端,microtask 在事宜循环的 macrotask 实行完之后实行

5.递归的调用process.nextTick()会导致I/O starving,官方推举利用setImmediate()

浅拷贝和深拷贝的问题

1.深拷贝和浅拷贝是只针对Object和Array这样的繁芜类型的

2.也便是说a和b指向了同一块内存,以是修正个中任意的值,另一个值都会随之变革,这便是浅拷贝

3.浅拷贝, ”Object.assign() 方法用于将所有可列举的属性的值从一个或多个源工具复制到目标工具。
它将返回目标工具

4.深拷贝,JSON.parse()和JSON.stringify()给了我们一个基本的办理办法。
但是函数不能被精确处理

开放性问题

开放性问题紧张是稽核候选人业务积累,是否有自己的思考,思考问题的办法,没有标准答案。
不过有些问题挺刁钻的,哈哈哈哈,比如:" 你见过的最好的代码是什么? "总之提前准备下没错。

1.先自我介绍一下,说一下项目的技能栈,以及项目中碰着的一些问题

2.从整体中,看你对项目的认识,框架的认识和自己思考

3.项目中有没有碰着什么难点,怎么办理

4.如果你在创业公司你怎么从0开始做(选择什么框架,选择什么构建工具)

5.说一下你项目中用到的技能栈,以及以为得意和出色的点,以及让你头疼的点,怎么办理的

6.一个业务场景,面对产品不断迭代,以及需求的变动该怎么应对,详细技能方案实现

7.你的学习来源是什么

8.你以为哪个框架比较好,好在哪里

9.你以为最难的技能难点是什么

10.你见过的最好的代码是什么

CSS篇

1. CSS 盒子模型,绝对定位和相对定位

2. 打消浮动,什么时候须要打消浮动,打消浮动都有哪些方法

3. 如何保持浮层水平垂直居中

4. position 和 display 的取值和各自的意思和用法

5. 样式的层级关系,选择器优先级,样式冲突,以及抽离样式模块怎么写,说出思路,有无实践履历

6. css3动画效果属性,canvas、svg的差异,CSS3中新增伪类举例

7. px和em和rem的差异,CSS中link 和@import的差异是?

5. 理解过flex吗?

JavaScript 篇

JavaScript 根本

1. JavaScript 里有哪些数据类型,阐明清楚 null 和 undefined,阐明清楚原始数据类型和引用数据类型。
比如讲一下 1 和 Number(1)的差异

2. 将一下 prototype 是什么东西,原型链的理解,什么时候用 prototype

3. 函数里的this什么含义,什么情形下,怎么用。

4. apply和 call 什么含义,什么差异?什么时候用。
(我有篇文章 重点剖析过)

5. 数组和工具有哪些原生方法,列举一下,分别是什么含义,比如连接两个数组用哪个方法,删除数组的指定项和重新组装数组(操作数据的重点)。

6. 若何避免全局变量污染?ES5严格模式的浸染,ES6箭头函数和ES5普通函数一样吗?

JavaScript 的面向工具

1. JS 模块包装格式都用过哪些,CommonJS、AMD、CMD。
定义一个JS 模块代码,最精简的格式是若何。

2. JS 怎么实现一个类。
怎么实例化这个类。

3. 理解闭包吗?请讲一讲闭包在实际开拓中的浸染;闭包建议频繁利用吗?

4. 说一下理解的js 设计模式,阐明一下单例、工厂、不雅观察者。

5. ajax 跨域有哪些方法,jsonp 的事理是什么,如果页面编码和被要求的资源编码不一致如何处理?

开源工具

1)是否理解开源的架构工具 bower、npm、yeoman、gulp、webpack,有无用过,有无写过,一个 npm 的包里的 package.json 具备的必要的字段都有哪些(名称、版本号,依赖)

2)github常用不常用,关注过哪些项目

3)会不会用 ps 扣图,png、jpg、gif 这些图片格式阐明一下,分别什么时候用。
如何优化图像、图像格式的差异

4)说一下你常用的命令行工具

5)会不会用git,说上来几个命令,说一下git和svn的差异,有没有用git办理过冲突

打算机网络根本

1)说一下HTTP 协议头字段说上来几个,是否尽可能详细的节制HTTP协议。
一次完全的HTTP事务是若何的一个过程?

2)cookies 是干嘛的,做事器和浏览器之间的 cookies 是怎么传的,httponly 的 cookies 和可读写的 cookie 有什么差异,有无长度限定

请描述一下cookies,sessionStorage和localStorage的差异

3)从敲入 URL 到渲染完成的全体过程,包括 DOM 构建的过程,说的越详细越好。

4)是否理解Web注入攻击,说下事理,最常见的两种攻击(XSS 和 CSRF)理解到什么程度。

5)是否理解公钥加密和私钥加密。
如何确保表单提交里的密码字段不被透露。
验证码是干嘛的,是为理解决什么安全问题。

6)编码知识:文件编码、URL 编码、Unicode编码 什么含义。
一个gbk编码的页面如何精确引

前端框架

1) 对 MVC、MVVM的理解

2) vue、angularjs等 相对付 jQuery在开拓上有什么优点?

3)前后分离的思想理解吗?

4)你上一个项目都用到了那些方法优化js的性能?

5)angular的生命周期?

6)说一下你对vue和vuex的利用方法,vue的组件复用机制

稽核学习能力和方法

1)你每天必须登录的网站(前端技能干系)是什么?

2)前端技能方面看过哪些书,有无条记,都有哪些收成。

3)收藏了哪些代码片段?有想过开源自己的代码嘛?

4)怎么理解前端技能的大趋势?自己在做哪方面的知识储备?

5)是否理解或精通其他(后端)的编程措辞?

6)做项目有没有碰着哪些印象深刻的技能攻关,详细碰着什么问题,怎么找答案的,末了怎么解的。

7)对往后自己的前端职业路线,怎么方案?

标签:

相关文章

监控线怎么拉,电梯厂家。

电梯内监控摄像头怎么布线1 需要根据电梯内的具体结构和情况,进行合理的布线方案设计。2 电梯内布线需要注意安全问题,例如要防止电线...

人工智能 2024-10-15 阅读1 评论0

远程监控看不到,远程监控电脑软件。

远程监控按设备为什么进去后搜索不到呢有可能是和别的安全软件(例如瑞星)冲突了,我建议你暂时卸载安全软件后再重新试用一下,我也有过这...

人工智能 2024-10-15 阅读1 评论0