前端经常遇到的一些面试题

来源:互联网 发布:unity3d编写小型ar游戏 编辑:程序博客网 时间:2024/05/16 14:02
1、总结Angular的内置服务?
$window:用于注入原生JS中的window对象
$document:用于注入原生JS的document文档对象
$timeout:用于注入封装原生JS的setTimeout()函数处理过程
$interval:用于注入封装原生的JS的setInterval()函数处理过程
$location:用于注入原生JS中的location对象方便对于URL地址等操作
$http:用于注入封装的Ajax操作进行异步数据请求


2、自定义服务service的理解?
在angularJS中为我们提供了三种不同方式的实现自定义服务,服务是一个函数或对象,他们分别是系统内置的$provider,module中的service和module中的factory


3、数据双向绑定的理解?
Angular实现数据双向绑定机制。所谓的双向绑定,无非是从界面的操作能实时反映到数据,数据的变更能实时展示到界面。


4、angularJS依赖注入的理解?
依赖注入是一种软件设计模式,在这种模式下,一个或更多的依赖被注入到一个独立的对象中,然后成为该客户端的一部分。该模式分离了客户端依赖本身行为的创建,这使得程序设计变得松耦合,并遵循了依赖反转和单一职责原则。与服务定位器模式形成直接对比的是,它允许客户端了解客户端如何使用该系统找到依赖。


5、AngularJS中MVC的理解?
MVC其实就是一种开发模式,有模型(model)、视图(view)、控制器(controller)3部分构成,采用这种方式为合理组织代码提供了方便,降低了代码间的耦合度,功能结构清晰可见。


Model:一般用来处理数据,包括读取和设置数据,一般指的是操作数据库。
View:一般用来展示数据,就是放数据,比如通过HTML来展示。
Controller:因为一个模块里面可能有多个视图和模型,控制器就起到了连接模型和视图的作用。


6、Angularjs五个依赖注入的核心组件的使用方法?
angular中5个核心组件分别是value  factory service constant  provider
value:用于向控制器传递值
factory :我们称其为工厂模式,其理解为时一个函数用来返回值或者函数
service  它是一个可注入的构造器,在AngularJS中它是单例的,用它在Controller中通信或者共享数据都很合适,在官方文档中将他归类到了 service中 单独使用的话是作为自定义服务来的。
constant :定义常量用的
provider:我们不能单独的配置,需要在config中来创建provider


7、Angular内置路由的优缺点?
优点:AngularJS 路由允许我们通过不同的 URL 访问不同的内容。通过 AngularJS 可以实现多视图的单页Web应用
缺点:没有有样式视图,嵌入式视图






//有关anjularJS的面试题
http://www.cnblogs.com/iceman107/p/6752783.html


8、javaScript的常用对象 :String Date  Array


9、window常用对象:alert()  close() open() blur() focus() setTimeout()


10、BOM常用的对象:location  history  navigator


11、HTML5 中的一些有趣的新特性:
用于绘画的 canvas 元素
用于媒介回放的 video 和 audio 元素
对本地离线存储的更好的支持
新的特殊内容元素,比如 article、footer、header、nav、section
新的表单控件,比如 calendar、date、time、email、url、search


12、块级元素:div  , p  , form,   ul,  li ,  ol, dl,    form,   address,  fieldset,  hr, menu,  table
   行内元素:span,   strong,   em,  br,  img ,  input,  label,  select,  textarea,  cite,  
   空元素:br  hr


13、语义化标签:根据内容的结构化(内容语义化),选择合适的标签(代码语义化)便于开发者阅读和写出更优雅的代码的同时让浏览器的爬虫和机器很好地解析。


14、CSS盒子模型
CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。
盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。


15、双飞翼布局
(1)三列布局,中间宽度自适应,两边定宽; (2)中间栏要在浏览器中优先展示渲染。


16、css选择器有哪些
标签选择器 属性选择器 ID选择器 类选择器 


17、jQuery选择器的优势
jQuery中的选择器完全继承了CSS的风格,利用jQuery选择器可以非常方便的找出特定的DOM元素,然后为它们添加相应的行为,而无需担心浏览器是否支持这一选择器。jquery中涉及操作CSS样式的部分比单纯的CSS功能更为强大,并且拥有跨浏览器的兼容性。


18、jQuery对象转成DOM对象
jQuery提供了两种方法将一个jQuery对象转换成DOM对象,即[index]和get(index).
DOM对象转换成jQuery对象
对于一个DOM对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了,方式为$(DOM对象)。


19、为什么有用jQuery
轻量级 强大的选择器 兼容性好 链式编程 出色的DOM操作封装 开源


20、jQuery选择器
ID选择器  class选择器  *选择器  标签选择器 层次选择器 过滤选择器


//jquery属性
http://www.cnblogs.com/tylerdonet/archive/2013/04/02/2996713.html




21、Window对象共有七个属性:defauleStatus   status  frames  parent  self


22、jQuery中的DOM操作有哪些?
append()   appendTo()   prepend()   prependTo()  after() 


23、angularjs ng-if ng-show ng-hide区别
答:ng-show师表示展示的意思  ng-hide是隐藏的意思  两个都相当与display,ng-if是对Dom进行操作的属于删除


共同点:在使用anularjs开发前端页面时,常常使用ng-show、ng-hide、ng-if功能来控制页面元素的显示或隐藏
不同点:
从实现原理方面:
ng-show/ng-hide是通过修改CSS样式方式控制元素显示与隐藏,对应的DOM元素会一直存在于当前页面中,而ng-if根据表达式的值动态的在当前的页面中添加删除页面元素。
 在作用域方面:
两者也存在差异:当一个元素被ng-if从DOM中删除时,与其关联的作用域也会被销毁。而且当它重新加入DOM中时,则会生成一个新的作用域,而ng-show和ng-hide则不会。


24、angularJS内置指令以及意义
  ng-app      指定应用根元素,至少有一个元素指定了此属性。  
        ng-controller   指定控制器  
        ng-show     控制元素是否显示,true显示、false不显示  
        ng-hide     控制元素是否隐藏,true隐藏、false不隐藏  
        ng-if       控制元素是否“存在”,true存在、false不存在  
        ng-src      增强图片路径  
        ng-href     增强地址  
        ng-class    控制类名  
        ng-include      引入模板  
        ng-disabled     表单禁用  
        ng-readonly     表单只读  
        ng-checked      单/复选框表单选中  
        ng-selected     下拉框表单选中  
        ng-init         初始化数据  


25.ng-model、ng-bind和{{}}渲染页面的区别?
ng-model是对于表单之间进行设置作用域的操作   ng-bind是绑定值的操作   {{}}是表示表达式如果网络不好会影响用户的体验