angular前端面试题

439 阅读1分钟

angular的数据绑定是采用什么机制? 脏检查机制 原理: angular在scope模型上设置了一个监听队列,用来监听数据变化并更新到view。 每次绑定一个东西到view上时,angular就会往watch队列里插入一条watch队列里插入一条watch,用来检测它监视的model里是否有变化的东西。 当浏览器接收到可以被angular context 处理的事件时,digest循环会触发,遍历所有的digest循环会触发,遍历所有的watch,最后更新 DOM

angular 的数据双向绑定是怎么实现的($digest函数就是脏数据检测) 1.每个双向绑定的元素都是一个watcher 2.在某些事件发生时,调用digest脏数据检测 3.脏检测会检测 rootscope下所有被 watcher的元素

ng-show/ng-hide / ng-if 的区别 ng-show/ng-hide 是通过display来隐藏和显示的 ng-if 是控制 dom节点的增删来实现。 结论:如果我们要根据不同的条件来进行 DOM节点的加载,那么ng-if的性能好过 ng-show/ng-hide

例举不同模块之间的通信方式 Service events,指定绑定的事件 使用rootScopecontroller之前直接使用rootScope controller 之前直接使用 parent, $$childHead等 directive指定属性进行数据绑定

angular 中的 $http 一个核心服务,用于读取远程服务器的数据

什么是数据绑定 字符串插值 属性绑定 事件绑定 双向数据绑定

angular 的指令是什么 组件指令 结构指令 属性指令

angular 的表单 formControl

什么是rootScope 以及和 scope 的区别 通俗来说 rootScope 是所有 scope 的父亲 解析: 1.angular 解析 ng-app 然后在内存中创建 root2.angular继续解析,找到表达式,并解析成变量3.接着会解析带有ngcontrollerdiv,然后指向到某个controller函数。这个时候在这个controller函数变成一个root 2.angular 继续解析,找到 {{}} 表达式,并解析成变量 3.接着会解析带有 ng-controller 的div, 然后指向到某个 controller 函数。这个时候在这个 controller 函数变成一个 scope 对象实例

angular的生命周期 ngOnChanges ngOnInit ngDoCheck ngAfterContentInit ngAfterContentChecked ngAfterViewInit ngAfterViewChecked ngDestory