Angular面试不用愁,29道题免费送上

Jet丁Neat Coding
8 min readSep 2, 2019

--

Angular面试不用愁,29道题免费送上

大家好,今天我们谈一下Angular的面试题。

废话不多说,直接进入正题。

第1道题,什么是Angular?

Angular是基于typescript编程语言的,开源的网络应用开发框架。是由谷歌倡导开发和维护的。它使用简单,功能强大,可以快速搭建前端网络应用。

它提供了很多非常优秀的功能,比如说声明性的模板,依赖注入,端到端的工具,等等可以为网络应用开发提供便利。

第2道题, Ng content有什么功能?

Ng content可以允许开发者在自定义的组件中添加自定义的模板内容。

第3道题,解释一下angular中比较好的功能。

Accessibility applications.

Angular cli.

Animation support.

Cross platform APP development.

Code generation.

Code splitting.

Synergy with popular code editors and ides.

Templates.

Testing.

第4道题, 如何进行路径的变换?

可以使用router的navigate方法。

第5道题, 解释一下service。

Service是Angular中的singleton对象。里面包含了方法和数据, 这些数据会存在于整个程序的生命周期之中。

第6道题, 解释一下使用Angular的好处。

好处有:

可以添加自定义的directive.

优秀的社区支持。

客户端和服务器的通讯非常便利。

强大的功能比如动画和事件处理。

使用mvc模式。

支持双向数据绑定。

支持依赖注入, restful service和有效验证。

第7道题, 解释一下angular的authentication和authorization。

用户登录以后会有一个jwt token, 这是authorization。

根据jwt token的内容来判定用户的访问权限这是authentication.

第8道题, 如何使用Angular cIi生成一个类。

ng generate class classname

第9道题, Observables和promises的区别是什么?

Promises一旦创建,它的执行就会发生。

observable是不是这样,它的执行只有在subscription被创建的时候才会触发。

Promise只能处理一个事件。Observable是可以处理多个事件。

第10道题, Angular和Angular js的区别是什么?

Angular js支持的是mvc设计模型。Angular是基于组件和directives的。

Angular支持依赖注入,Angular js不支持。

Angular js的ng directive需要image, 属性和一个事件, angular只需要括号和方括号来绑定数据属性和事件就可以了 。

Angular js不支持移动设备的开发。Angular 支持手机开发。

Angular js的首推语言是JavaScript。Angular的首推语言是type script.

路径设置上,angular js使用的是route provider。Angular使用的是route config.

在开发速度上,Angular要快于Angular js。

在运行速度上,angular也要快于angular js。

Angular的整个程序的架构比angular js更清晰,更简单,更容易维护。

目前Angular js已经没有官方的维护和更新支持了。Angular官方维护和更新都做得很好。

第11道题, 解释一下angular里面的template。

Template是用html写的,可以作为一个整体被多个tag调用。

第12道题,annotation和decorator的区别。

annotation用来指定一个类的metadata set.

decorator在Angular中是一种设计模式, 但不修改原有代码的基础上,对类进行修改和装饰。

第13道题, Angular中的directives是什么?

Directives是angular的一个核心功能之一。这门技术允许程序员写特定功能的html语义。

有三种类型的directives。

一种是attribute. 一种是组件, 一种是结构化。

第14道题,Angular的核心部件有哪些?

共有9个,一个是components,另外一个是data binding,再一个是dependency injection, 然后是directives,再就是metadata,然后是modules,再就是routing,还有services,最后一个是template。

第15道题,Angular和jquery的区别有哪些?

首先Angular是前端的开发框架,而jquery是JavaScript的程序库。

Angular支持双向数据绑定,jquery不支持。

Angular支持restful API, 但是jquery也不支持。

jquery不支持深度的路径链接,而Angular是支持的。

jquery中没有表格的数据有效性验证, 还Angular是支持的。

第16道题, 什么是angular material?

这是Angular的用户界面组件库。

第17道题, 什么是aot编译?

aot是ahead of time。就是Angular的内部编译机制。

第18道题, 什么是数据绑定?在Angular中有几种方式?

连接程序中的数据跟视图的方式称为数据绑定。

一共有三种方式。一种是事件绑定,这种方式使得应用程序可以对用户的输入做出反应。另一种是属性绑定。这种方式是从应用数据向html传递数据。最后一种方式是双向绑定。这种绑定可以支持用程序数据的修改影响视图,同时视图上数据的改动也会影响到应用程序的数据。

第19道题,列举一下Angular中的filter类型。

Currency.

Date.

Filter.

Json.

limitTo

lowercase

number

orderBy

第20道题,什么是spa,比较一下single page application跟传统的web application.

Single page application, 是指在整个应用中只有一个页面。这种方式相较传统的网络应用要快很多。开发上的时间成本也要小很多。

第21道题, 如何创建一个decorator?

decorator本身就是一个函数。

第22道题, 什么过程把Typescript转化成JavaScript?

这个过程叫transpiling。

第23道题, 如何使用Angular的expressions?

使用双大括号。

第24道题,Angular中的组件和directives的生命周期是怎样的?

constructor, ng on changes, ng on init, ng do check ng on destroy.

第25道题, Dirty check是怎么回事?

Dirty check是比较新的数据跟老的数据的差别,如果看到有改变, 就用新的数据更新现有的视图。

第26道题, Dom和bom的区别是什么?

Dom是document object model。Bom是browser object model。

DOM代表的是网页的内容。Bom包含dom, 它还包含有浏览器的属性。

Dom是一棵树结构,通过对应的API来访问里面的数据。Bom包含在全局的JavaScript对象里面,是window object的子成员。

Dom用来操作html文档。Bom用来操作浏览器窗口。

Dom有w3c的标准。Bom,对各个浏览器来说都是有自己具体的实现,都不一样。

第27道题, Angular中有哪些事件?

click, copy, cut, dbclick, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseover, mouseup, blur

第28道题, Angular中的bootstrapping是什么?

Bootstrapping是用来初始化或者启动网络应用的。它包含自动和手工两种。

第29道题, Provider, service和factory的区别是什么?

Provider允许你在APP config里面配置你的应用。

Service就是用来创建一个服务的。

Factory是用来创建和配置服务的。

上面只是我个人对这个话题的一点心得体会,分享给大家,希望与大家讨论,共同提高,欢迎拍砖

--

--