珠峰培训javascript技术与前端技术论坛

 找回密码
 立即注册
查看: 3195|回复: 0

2018年Angular的经典面试问题汇总

[复制链接]

60

主题

90

帖子

704

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
704
发表于 2019-1-22 17:57:29 | 显示全部楼层 |阅读模式
做前端的同学都知道,框架一直是前端开发要经常学习的知识点,Angular是前端框架中比较常见的一种,在面试的时候,关于框架的知识点也是越来越多,珠峰培训给大家总结了Angular的经典面试题,希望能给大家带来帮助。

1. ng-show/ng-hide 与 ng-if的区别?
我们都知道ng-show/ng-hide实际上是通过display来进行隐藏和显示的。而ng-if实际上控制dom节点的增删除来实现的。因此如果我们是根据不同的条件来进行dom节点的加载的话,那么ng-if的性能好过ng-show.


2. 表达式 {{yourModel}}是如何工作的?
它依赖于 $interpolation服务,在初始化页面html后,它会找到这些表达式,并且进行标记,于是每遇见一个{{}},则会设置一个$watch。而$interpolation会返回一个带有上下文参数的函数,最后该函数执行,则算是表达式$parse到那个作用域上。


3. Angular中的digest周期是什么?
每个digest周期中,angular总会对比scope上model的值,一般digest周期都是自动触发的,我们也可以使用$apply进行手动触发。更深层次的研究,可以移步The Digest Loop and apply。


4. 列出至少三种实现不同模块之间通信方式?
Service


events,指定绑定的事件


使用 $rootScope


controller之间直接使用$parent, $$childHead等


directive 指定属性进行数据绑定


5. 你认为在Angular中使用jQuery好么?


这是一个开放性的问题,尽管网上会有很多这样的争论,但是普遍还是认为这并不是一个特别好的尝试。其实当我们学习Angular的时候,我们应该做到从0去接受angular的思想,数据绑定,使用angular自带的一些api,合理的路由组织和,写相关指令和服务等等。angular自带了很多api可以完全替代掉jQuery中常用的api,我们可以使用angular.element,$http,$timeout,ng-init等。


我们不妨再换个角度,如果业务需求,而对于一个新人(比较熟悉jQuery)的话,或许你引入jQuery可以让它在解决问题,比如使用插件上有更多的选择,当然这是通过影响代码组织来提高工作效率,随着对于angular理解的深入,在重构时会逐渐摒弃掉当初引入jquery时的一些代码。


所以我觉得两种框架说完全不能一起用肯定是错的,但是我们还是应该尽力去遵循angular的设计。




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|珠峰培训--JavaScript培训

GMT+8, 2021-6-21 11:42 , Processed in 0.214919 second(s), 21 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表