`

angularjs-面试问题

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

angular 的数据绑定采用什么机制?详述原理。

1、每个双向绑定的元素都有一个watcher
2、在某些事件发生的时候,调用digest脏数据检测。
这些事件有:表单元素内容变化、Ajax请求响应、点击按钮执行的函数等。
3、脏数据检测会检测rootscope下所有被watcher的元素。
$digest函数就是脏数据监测

 

 二angular 的缺点有哪些?

强约束

导致学习成本较高,对前端不友好。

但遵守 AngularJS 的约定时,生产力会很高,对 Java 程序员友好。

不利于 SEO

因为所有内容都是动态获取并渲染生成的,搜索引擎没法爬取。

一种解决办法是,对于正常用户的访问,服务器响应 AngularJS 应用的内容;对于搜索引擎的访问,则响应专门针对 SEO 的HTML页面

 

三,ng-if 跟 ng-show/hide的区别有哪些?

  1. ng-if 在后面表达式为 true 的时候才创建这个 dom 节点,ng-show 是初始时就创建了,用 display:block 和 display:none 来控制显示和不显示。
  2. ng-if 会(隐式地)产生新作用域,ng-switch 、 ng-include 等会动态创建一块界面的也是如此。

四,angular 核心?

AngularJS是为了克服HTML在构建应用上的不足而设计的。 AngularJS有着诸多特性,最为核心的是:

  • MVC
  • 模块化
  • 自动化双向数据绑定
  • 语义化标签、依赖注入等等

 

性能问题

作为 MVVM 框架,因为实现了数据的双向绑定,对于大数组、复杂对象会存在性能问题。

可以用来 优化 Angular 应用的性能 的办法:

减少监控项(比如对不会变化的数据采用单向绑定)

主动设置索引(指定 track by ,简单类型默认用自身当索引,对象默认使用 $$hashKey ,比如改为 track by item.id )

降低渲染数据量(比如分页,或者每次取一小部分数据,根据需要再取)

数据扁平化(比如对于树状结构,使用扁平化结构,构建一个 map 和树状数据,对树操作时,由于跟扁平数据同一引用,树状数据变更会同步到原始的扁平数据)

 

另外,对于Angular1.x ,存在 脏检查 和 模块机制 的问题。

 

分享到:
评论

相关推荐

    程序员面试刷题的书哪个好-angularjs-interview-questions:AngularJS面试问题

    程序员面试刷题的书哪个好AngularJS 面试题示例(更新至 v1.7.x) 如果您喜欢该项目,请单击。 拉取请求受到高度赞赏。 目录 基本 号码 问题 01. 02. 03. 04. 05. 06. 07. 08. 09. 10. 11. 12. 13. 14. 15. 16. 17. ...

    angularjs-examples:AngularJS 基本示例

    **AngularJS 基本示例** AngularJS 是一个由 Google 维护的 JavaScript 框架,用于构建单页应用程序(SPA)。它通过提供数据绑定、...同时,这也有助于准备 AngularJS 的认证考试或者面试,巩固理论知识与实践经验。

    程序员面试刷题的书哪个好-AngularJS-Interview-Q-A:有一个即将到来的AngularJS面试或刚刚学习AngularJS,

    程序员面试刷题的书哪个好 :fire: :fire: 常见且经过验证的成功 AngularJS-Interview-Questions 1. 对 AngulatJS 过滤器进行单元测试的基本步骤是什么? 回答: 注入包含过滤器的模块。 提供过滤器依赖的任何模拟。 ...

    angularjs常见面试题.docx

    在AngularJS面试中,面试官可能会考察候选人的各种技能,包括对框架的理解、最佳实践以及常见问题的解决方案。以下是一些基于题目提供的信息所总结的关键知识点: 1. **AngularJS 水平评估**: - 评估AngularJS...

    angularjs常见面试题.pdf

    面试中,AngularJS 的相关问题往往涉及其核心概念和最佳实践。以下是一些基于提供的面试题的详细知识点: 1. **衡量AngularJS水平**: - 理解MVC/MVVM架构:AngularJS基于MVVM模式,理解数据绑定、控制器、服务、...

    AngularJS-Trial:这是AngularJs的测试项目

    AngularJS面试问题集 背景 该应用程序实现了一个简单的选项卡式待办事项列表。 待办事项列表是带有键的对象数组:name [string] complete [bool] 问题 仅使用AngularJS实现以下功能。 不要将“ id”元素添加到HTML或...

    真棒面试问题:精选的真棒面试问题列表。 随时贡献!

    10. **angularjs-interview-questions** - AngularJS(现在被称为AngularJS 1.x)是Google开发的前端框架,面试问题可能围绕着双向数据绑定、依赖注入、指令、服务等。 11. **android-interview-questions** - 对于...

    前端面试题汇总-分享一下,给面试前端的朋友

    这份"前端面试题汇总"针对的是准备面试前端职位的朋友,涵盖了广泛的知识点,旨在帮助他们更好地理解和掌握面试中可能遇到的问题。以下是一些核心的前端面试知识点: 1. HTML基础: - 了解HTML5的新特性,如语义化...

    AJAX常见面试问题

    AJAX 面试问题解析 在本文中,我们将详细讨论 AJAX 面试中常见的问题和解决方案。 1.Ajax 的基础知识 在工作中,我们经常需要和后台交互,这时我们需要使用 Ajax 将数据发送到服务器端。在使用 Ajax 时,我们需要...

    vue面试题面试官经常问的,根据我的经验整理的

    2022年10个最佳面试问题 想雇佣你的下一个Vue开发者吗?然后,你需要最好的Vue面试问题。以下是要问应聘者的10个最重要的问题。 Vue访谈 Vue.js或Vue是一个开源前端JavaScript框架,用于构建单页应用程序和用户界面...

    面试时AJax问题的讲解

    - **框架和库**:如jQuery、AngularJS、React等,简化AJAX开发。 8. **AJAX模式**: AJAX模式涉及到请求管理、错误处理、回调函数等,需要开发者有良好的系统架构理解。 9. **易用性**: 开发者应关注用户体验...

    meanjs-interview-manager:面试题管理系统

    这个想法是通过连接这些框架来解决常见问题,构建一个强大的框架来支持日常开发需求,并帮助开发人员在使用流行的 JavaScript 组件时使用更好的实践。在你开始之前在开始之前,我们建议您阅读有关组装 MEAN.JS 应用...

    angularjs和vuejs的区别

    **AngularJS与VueJS是两种非常流行的前端JavaScript框架,它们都致力于解决Web开发中的复杂性问题,但各自有着独特的设计理念和实现方式。这篇博文将深入探讨这两者之间的区别,帮助开发者选择更适合自己的技术栈。*...

    AngularJS实例入门

    在准备AngularJS的面试时,以下是一些常见的问题和可能的答案: 1. **问:什么是AngularJS?** **答:**AngularJS是一个MVC框架,用于构建动态Web应用,通过数据绑定和依赖注入简化开发。 2. **问:解释一下双向...

    2022年前端Vue常见面试题大全(三万长文)持续更新...-vue面试题.zip

    2022年前端Vue常见面试题大全(三万长文)持续更新 目录 1.Vue和React有什么不同?使用场景分别是什么? 2.axios是什么?怎么使用它,怎么解决跨域? 3.说说Vue,React,angularjs,jquery的区别 4.什么阶段...

    人事常见面试题1

    【描述】:这篇资料整理了人事面试中的一些常见问题,涵盖了自我介绍、选择工作地点的原因、离职原因、个人优点以及如何谈论自身缺点等重要环节,旨在帮助求职者更好地准备面试。 【标签】:“angular 前端 vue.js...

    程序员考试刷题-Interview-Questions:面试问题

    技术面试问题列表的精选列表。 请阅读 或 如果您想贡献。 目录 编程语言/框架/平台 安卓 AngularJS 角 主干JS C++ C C# 。网 Clojure CSS Cucumber 姜戈 码头工人 EmberJS 二郎 高朗 图Ql HTML 离子 IOS Java ...

    wayBlazerInterviewProj:MEANjs项目面试

    这个想法是通过连接那些框架来解决常见问题,建立一个强大的框架来支持日常开发需求,并帮助开发人员在使用流行JavaScript组件时使用更好的实践。 在你开始之前 在开始之前,我们建议您阅读有关组装MEAN.JS应用程序...

Global site tag (gtag.js) - Google Analytics