微信牛牛平台日租搭建技巧 web前端经典面试题如何应对

一、javascript 基础(es5)

1、原型:这里可以谈很多,只要围绕 [[ prototype ]] 谈,都没啥问题
2、闭包:牵扯作用域,可以两者联系起来一起谈
3、作用域:词法作用域,动态作用域(微信牛牛平台日租搭建Q-2189563389 代码<?13182926751>)
4、this:不同情况的调用,this 指向分别如何。顺带可以提一下 es6 中箭头函数没有 this, arguments, super 等,这些只依赖包含箭头函数最接近的函数
5、call,apply,bind 三者用法和区别:参数、绑定规则(显示绑定和强绑定),运行效率(最终都会转换成一个一个的参数去运行)、运行情况(call,apply 立即执行,bind 是return 出一个 this “固定”的函数,这也是为什么 bind 是强绑定的一个原因)。
6、json jsonp json 数据格式,什么是真正的json,理解跨域的原理,如何解决跨域。

二、JS 基础(ES6)let,const:let 产生块级作用域(通常配合 for 循环或者 {} 进行使用产生块级作用域),const 申明的变量是常量(内存地址不变)

Promise:这里你谈 promise 的时候,除了将他解决的痛点以及常用的 API 之外,最好进行拓展把 eventloop 带进来好好讲一下,microtask、macrotask 的执行顺序,如果看过 promise 源码,最好可以谈一谈 原生 Promise 是如何实现的。Promise 的关键点在于callback 的两个参数,一个是 resovle,一个是 reject。还有就是 Promise 的链式调用(Promise.then(),每一个 then 都是一个责任人)。

Generator:遍历器对象生成函数,最大的特点是可以交出函数的执行权 function 关键字与函数名之间有一个星号; 函数体内部使用 yield 表达式,定义不同的内部状态; next 指针移向下一个状态

这里你可以说说 Generator 的异步编程,以及它的语法糖 async 和 awiat,传统的异步编程。ES6 之前,异步编程大致如下

回调函数 事件监听 发布/订阅

传统异步编程方案之一:协程,多个线程互相协作,完成异步任务。

async、await:Generator 函数的语法糖。有更好的语义、更好的适用性、返回值是 Promise。 async => * await => yield

基本用法

  1. async function timeout (ms) {
  2. await new Promise((resolve) => {
  3. setTimeout(resolve, ms)
  4. })
  5. }
  6. async function asyncConsole (value, ms) {
  7. await timeout(ms)
  8. console.log(value)
  9. }
  10. asyncConsole(‘hello async and await‘, 1000)

复制代码

注:最好把2,3,4 连到一起讲

AMD,CMD,CommonJs,ES6 Module:解决原始无模块化的痛点 AMD:requirejs 在推广过程中对模块定义的规范化产出,提前执行,推崇依赖前置 CMD:seajs 在推广过程中对模块定义的规范化产出,延迟执行,推崇依赖就近 CommonJs:模块输出的是一个值的 copy,运行时加载,加载的是一个对象(module.exports 属性),该对象只有在脚本运行完才会生成 ES6 Module:模块输出的是一个值的引用,编译时输出接口,ES6 模块不是对象,它对外接口只是一种静态定义,在代码静态解析阶段就会生成。三、框架相关数据双向绑定原理:常见数据绑定的方案 Object.defineProperty(vue):劫持数据的 getter 和 setter 脏值检测(angularjs):通过特定事件进行轮循 发布/订阅模式:通过消息发布并将消息进行订阅 VDOM:三个 part, 虚拟节点类,将真实 DOM 节点用 js 对象的形式进行展示,并提供 render 方法,将虚拟节点渲染成真实 DOM 节点 diff 比较:对虚拟节点进行 js 层面的计算,并将不同的操作都记录到 patch 对象 re-render:解析 patch 对象,进行 re-render

补充1:VDOM 的必要性?

创建真实DOM的代价高:真实的 DOM 节点 node 实现的属性很多,而 vnode 仅仅实现一些必要的属性,相比起来,创建一个 vnode 的成本比较低。

触发多次浏览器重绘及回流:使用 vnode ,相当于加了一个缓冲,让一次数据变动所带来的所有 node 变化,先在 vnode 中进行修改,然后 diff 之后对所有产生差异的节点集中一次对 DOM tree 进行修改,以减少浏览器的重绘及回流。

补充2:vue 为什么采用 vdom?

引入 Virtual DOM 在性能方面的考量仅仅是一方面。

性能受场景的影响是非常大的,不同的场景可能造成不同实现方案之间成倍的性能差距,所以依赖细粒度绑定及 Virtual DOM 哪个的性能更好还真不是一个容易下定论的问题。

Vue 之所以引入了 Virtual DOM,更重要的原因是为了解耦 HTML 依赖,这带来两个非常重要的好处是:

不再依赖 HTML 解析器进行模版解析,可以进行更多的 AOT 工作提高运行时效率:通过模版 AOT 编译,Vue 的运行时体积可以进一步压缩,运行时效率可以进一步提升; 可以渲染到 DOM 以外的平台,实现 SSR、同构渲染这些高级特性,Weex 等框架应用的就是这一特性。

综上,Virtual DOM 在性能上的收益并不是最主要的,更重要的是它使得 Vue 具备了现代框架应有的高级特性。

vue 和 react 区别 相同点:都支持 ssr,都有 vdom,组件化开发,实现 webComponents 规范,数据驱动等 不同点:vue 是双向数据流(当然为了实现单数据流方便管理组件状态,vuex 便出现了),react 是单向数据流。vue 的 vdom 是追踪每个组件的依赖关系,不会渲染整个组件树,react 每当应该状态被改变时,全部子组件都会 re-render。

上面提到的每个点,具体细节还得看自己的理解

为什么用 vue :简洁、轻快、舒服、没了

原文地址:https://www.cnblogs.com/kk88/p/8575100.html

时间: 2024-08-25 07:57:40

微信牛牛平台日租搭建技巧 web前端经典面试题如何应对的相关文章

Web前端经典面试试题(三)

一. 什么是Ajax??? 术语Ajax用来描述一组技术,它使浏览器可以为用户提供更为自然的浏览体验. Ajax它是"Asynchronous JavaScript + XML的简写" 定义Ajax: Ajax不是一种技术.实际上,它由几种蓬勃发展的技术以新的强大方式组合而成.Ajax包含: * 基于XHTML和CSS标准的表示: * 使用Document Object Model进行动态显示和交互: * 使用XMLHttpRequest与服务器进行异步通信: * 使用JavaScri

高效成熟的微信牛牛平台搭建软件开发流程和团队

下面是开发管理最规范一家软件公司的开发流程,该公司总部位于美国硅谷,其开发的产品曾获得PC Magazine的最高五星级的优秀好评.供大家参考. 1. 项目计划 在一个产品发布并使用之后,其中肯定有许多地方不如意和值得改进的地方.客户在使用的过程中会发现一些问题,提出更高的需求,市场也在发生变化,我们的竞争对手也在发展,新的技术不断地产生,这些因素推动着我们的产品不断地向前发展,使它的版本不停地往上增长.这些发展的需求不是一下子提出来的,在客户使用的过程中发现某些不如意不方便的地方,他们会向我们

微信牛牛平台制作服务器端架构概述

微信牛牛平台制作服务器端架构概述,平台制作教程联系QQ:212303635,官方网站(aqiulian.com) 架构的分析模型 一. 讨论的背景 现代电子游戏,基本上都会使用一定的网络功能.从验证正版,到多人交互等等,都需要架设一些专用的服务器,以及编写在服务器上的程序.因此,游戏服务器端软件的架构,本质上也是游戏服务器这个特定领域的软件架构. 软件架构的分析,可以通过不同的层面入手.比较经典的软件架构描述,包含了以下几种架构: 运行时架构--这种架构关心如何解决运行效率问题,通常以程序进程图

【玩转微信公众平台之六】 搭建新浪SAE服务器

赶紧接上一篇继续讲. ------本篇将介绍如何搭建 新浪SAE服务器.猛戳 http://sae.sina.com.cn/1.先自己注册一个账号,如果有新浪的账号,微博之类的都可以直接拿来用,授权一下就可以,如下: 2.接下来会让你填写一些安全设置,自己根据要求如实填写就可以了.要注意的是,你设置的安全密码别忘了,原因如下: 看的懂就好,看不懂也罢,我们继续往下走.3.注册的最后一步是 手机绑定 ,将你手机收到的验证码输入进去即可.这些都没啥难度,我就不多说了.注册成功后,点击 我的首页 回到

【玩转微信公众平台之六】 搭建新浪SAEserver

赶紧接上一篇继续讲.------本篇将介绍怎样搭建 新浪SAEserver.猛戳 http://sae.sina.com.cn/1.先自己注冊一个账号,假设有新浪的账号,微博之类的都能够直接拿来用,授权一下就能够,例如以下: 2.接下来会让你填写一些安全设置,自己依据要求如实填写就能够了.要注意的是,你设置的安全password别忘了,原因例如以下: 看的懂就好,看不懂也罢,我们继续往下走.3.注冊的最后一步是 手机绑定 ,将你手机收到的验证码输入进去就可以.这些都没啥难度,我就不多说了.注冊成

最近很火的微信牛牛棋牌房卡搭建的源码的一个BUG修复

最新版修复所有bug出租微信牛牛棋牌房卡搭建(h5.fanshubbs.com)扣扣1687054422 BUG说明:当后台设定某个玩家的控制赢率后.10局20局的就没有问题.当是大于20,就会出现玩到最后打到超过20局时,就会出现卡死,不发牌不准备也不结算.其实就是因为大番薯微信H5棋牌开发搭建每个作弊的玩家是都先设定好了牌的点数写到数据库里,发牌时先读取数据里设定的点数来发牌.因为原版的程序,只是能最多加到20局的牌做好.超过20局就没数据了,就出错了.但是没有写作弊的是完全没问题的. 附件

web前端工程师面试题

[HTML && CSS]--来自百度文库 1. Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义? Doctype 声明位于文档中的最前面的位置,处于标签之前.此标签可告知浏览器文档使用哪种 HTML 或XHTML 规范. 该标签可声明三种DTD 类型,分别表示严格版本.过渡版本以及基于框架的 HTML 文档. 当浏览器厂商开始创建与标准兼容的浏览器时,他们希望确保向后兼容性.为了实现这一点,他们创 建了两种呈现模式:标准模式和混杂模式(quirks mode)

web前端工程师 面试题

今天刚结束一场面试(含笔试),对自己的表现不太满意,感觉没有发挥好应有的水平,也只能怪自己平时没有及时积累和整理知识,准备也不充分. 就不扯那么多了,下面是我面试时,没能答上或者觉自己回答的不够好的题目. 1.position 属性规定元素的定位类型 值 描述 absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位. 元素的位置通过 "left", "top", "right" 以及 "bottom&

几个Web前端经典使用的炫丽进度条(上)

1.  jQuery带圆形进度条倒计时 源码下载  /  在线演示 2. jQuery网站页面加载进度条 源码下载 /  在线演示 3.13款页面加载样式特效 源码下载/   在线演示 几个Web前端经典使用的炫丽进度条(上)