Ember.JS 面试问题和答案
以下是 Ember.js 面试问题和答案,适合应届毕业生和有经验的求职者,以帮助他们获得理想的工作。
1)解释一下什么是 Ember.js 以及它是如何工作的?
Ember.js 用于创建 Web 应用程序,它消除了样板代码,同时提供了标准的应用程序架构。Ember 有助于创建应用程序,其逻辑在浏览器中运行,并且不需要服务器请求即可运行。当任何用户与浏览器页面上的按钮和文本框等交互时,Ember 会直接、立即更新 DOM。
免费 PDF 下载:Ember.js 面试问题和答案
2)列出 Ember.js 的主要组件?
Ember.js 的主要组件是
3)解释一下 Ember.js 中的模型是什么?
在 Ember 应用程序中,模型对象用于存储持久状态。这些模型对象支持模板并提供要在
HTML.
4)解释一下 ember 应用程序的结构?
应用程序 ember.js 基于 MVC(模型、视图、控制器)结构
- 楷模: 它定义了应用程序中使用的数据
- 控制器: 它修改查询和编辑数据并提供用户交互
- 浏览次数: 它显示数据并捕获用户操作
5)Ember.js 中的控制器起什么作用?
控制器在 Ember.js 中做两件事
- 首先它可以装饰路由返回的模型
- 它可以监听用户执行的操作
Ember.js 面试问题
6)解释一下 ember.js 与传统的 web 应用程序有何不同?
在 Ember.js 中,应用程序的大部分逻辑不再存储在服务器上,而是在初始页面加载时下载运行所需的所有内容。因此,用户在使用该应用程序时无需加载新页面,并且 UI 会快速响应。这种架构的优点是您的 Web 应用程序使用相同的 REST
API 作为您的原生应用程序。
7)解释一下 Router 和 {{outlet}} 标签在 ember.js 中有何用处?
- 路由器允许您指定应用程序的所有可能状态并将它们映射到 URL
- 为了通过为容器模板提供包含子模板的方法来构建部分的层次结构,使用了 {{outlet}} 标签
8) 解释一下 ember.js 中的 Router 和 Route 有什么区别?
路由器:它是浏览器地址栏和我们的应用程序之间的连接点。它将地址转换为路由。路由:用户请求经过路由器转换后将到达的地方。路由决定应该向模板提供哪些数据
9)解释什么是 Ember-data?
Ember-Data 是一个从服务器检索记录、存储它们、在浏览器中更新它们并将它们保存回服务器的库。
Ember.js
10)解释适配器的作用和适配器的类型?
适配器查询后端,每个适配器由特定的后端组成。例如 Rest 适配器处理
JSON API 和 LSAdapter 处理本地存储。
11)解释定义和插入视图的两种方法是什么?
第一种方式
- 通过扩展 Em.View 类,您必须在 JavaScript 中创建一个对象来定义视图。您可以在其中声明函数和变量。
- 现在要在模板中插入视图,您必须按照编写的手柄脚本 {{ #view App.ViewName}}
第二路
- 在这种技术中,插入模板时不需要视图对象的名称。但在对象内部,您有另一个名为 templateName 的属性,该属性应使用与模板中 handlebar 的脚本标记中的数据模板名称属性相同的值进行初始化
12)解释一下 ember.js 中的控制器是什么?
当你需要处理业务逻辑时,可以使用控制器,控制器可以表示页面的一部分或整个页面。它就像一个逻辑功能块。
13)请提及 ember.js 中使用的模板组件?
ember.js 中使用的模板组件是
14)解释什么是序列化器?
序列化器负责将服务器返回的原始 JSON(JavaScript 对象表示法)负载转换为记录对象。JSON API 可以用许多不同的方式表示属性和关系。
15) 如何定义一个新的 ember 类?
你可以调用 Ember.object 上的 extend() 方法来定义一个新的 ember 类
16) 解释如何创建 Ember.handlebars 模板?
调用 Ember.Handlebars.Compile() 创建一个 ember.handlebars 模板。它将返回一个可供 ember.view 进行渲染的函数。
17)解释如何使用装置将数据添加到应用程序中?
为了在将应用程序连接到长期持久性之前将样本数据放入应用程序中,使用了装置。
- 首先更新 js/application.js 以表明你的应用程序的 应用程序适配器 是 DS.FixtureAdapter 的扩展。适配器用于与应用程序的数据源进行通信。通常,这将是一个 Web 服务 API。
- 接下来,更新 js/models/todo.js 文件
18) 请提及 ember packages/ember run-time/lib 和 packages/ember metal/lib/utils.js 中使用的一些函数?
- 没有: 如果参数为空或未定义,则返回 tur
- 空: 实用函数通过对空字符串和空数组返回 false 来限制 ember.none 上的规则
- 是数组: 使用它来检查值是否是 排列
- 制作数组: 当你想将给定对象放入数组中时使用此函数
- 类型: 用于获取传递参数的类型
- 比较: 用于比较两个可能不同类型的对象
- 是平等的: 检查传递的两个参数在逻辑上是否相等
- 检查: 在调试时,此功能很有用。对于给定的对象,它返回字符串描述
- 日志绑定: 日志绑定不是一个函数,而是一个布尔函数。如果设置为 true,ember 将记录绑定上发生的所有活动
19)解释一下 ember.js 中的 Enumerables 是什么?
在 Ember.js 中,可枚举对象是包含多个子对象的任何对象,并允许您使用 Ember.Enumerable API 处理这些子对象。原生 JavaScript 数组是大多数应用中最常见的可枚举对象。
20) 解释一下什么是 Ember.ArrayController 以及它的优点是什么?
Ember.ArrayController 是一个包装底层数组并为视图层添加附加功能的控制器。优点是您只需设置一次视图绑定。
21)解释应用程序模板?
在 Ember.js 中,应用程序模板是应用程序启动时使用的默认模板。在模板应用程序中,您必须放置页眉、页脚以及要在网页上显示的任何其他装饰项目。
22) 解释什么是 ember.mixin 类?
Ember.mixin 类可以创建对象,其函数和属性可以在其他实例和类之间共享。这将有助于在对象之间共享行为以及设计对象。
23) 什么是 Ember.Namespace.Class?
Namespace.Class 通常用于定义包含其他对象或方法(例如应用程序或框架)的对象。
24) Ember.TrackedArray 何时有用?
要跟踪数组操作,可以使用 Ember.TrackedArray。当你想在数组中项目的索引被后续操作移动后计算它们时,它会更有用
25) 解释如何在 ember.js 中创建实例?
定义类后,您可以通过调用其 create() 方法来创建新实例。您在类上定义的任何属性或方法都将可用于实例。
奖金!
26) 解释一下 Ember.SortableMixin 有什么用?
对于数组代理,Ember.SortableMixin 提供了一个标准接口来指定排序顺序,并在更新、删除或添加对象时保持此排序,而不会改变底层模型数组的顺序。这些面试问题也会对您的口试有所帮助