AngularJS前端面试题

 

 1.xhtml及html有什么分别

HTML是同等栽基本的WEB网页设计语言,XHTML是一个冲XML的置标语言

无限根本的异:

     XHTML 元素必须于科学地嵌套。

     XHTML 元素必须被关门。

  
标签名必须用小写字母。

     XHTML 文档必须具备根元素

2、简述一下src与href的界别:

href
是负为网资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接,用于超链接。

src是因于外部资源的岗位,指向的始末将见面放到文档中时签所在位置;在呼吁src资源时会见拿该针对性的资源下载并行使到文档内,例如js脚本,img图片及frame等元素。当浏览器解析及拖欠因素时,会半途而废其他资源的下载和拍卖,直到将该资源加载、编译、执行完毕,图片和框架等因素也这么,类似于用所因于资源嵌入当前签内。这为是干吗用js脚本放在脚而未是脑部。

3、行内元素来什么样?块级元素来怎样?
空(void)元素来那些?

行内元素:a、b、span、img、input、strong、select、label、em、button、textarea

块级元素:div、ul、li、dl、dt、dd、p、h1-h6、blockquote

空元素:即系没有内容之HTML元素,例如:br、meta、hr、link、input、img

4、 form中的action属性和method属性的含义是呀?method常用值有怎样?

action属性用于指定form表单提交的后台程序地址;method属性用于指定form表单提交的法子。

method的常用值有:get和post

5、 表单元素新增的性能有怎么样?

required: 必填色

placeholder:提示信息,点击input内容常常会见消亡

pattern:校验正则表达式

autofocus:自动获得焦点

autocomplete:自动完成

6.朝着指定服务器交由数据的不二法门有哪?

   Ajax  表单Form  

   URL?参数 

   AngularJS的$HTTP

JQ Ajax: $.POST(,,)  $.GET(,,)
 $.Ajax({})

JS Ajax: 5步。(参考25题)

7、写一个function,清除字符串前后的空格。(兼容所有浏览器)

function trim(str) {

   if (str && typeof str === “string”)
{

            return
str.replace(/(^\s*)|(\s*)$/g,””);  
//去除前后空白符

           }

8、如何消除一个数组里面再的元素?

var arr1
=[1,2,2,2,3,3,3,4,5,6],

 var arr2 = [ ];

    for(var i = 0; i< arr1.length;
i++){

        if(arr2.indexOf(arr1[i]) <
0){

         arr2.push(arr1[i]);

        }

}

document.write(arr2); //
1,2,3,4,5,6

9、请描述一下cookies,sessionStorage和localStorage的区别

sessionStorage用于地方存储一个会话(session)中之数码,这些数据只有以和一个对话中之页面才能够看并且当会讲话了晚数吧随即销毁。因此sessionStorage不是均等栽持久化的当地存储,仅仅是会见讲话级别的囤积。而localStorage用于持久化的地头存储,除非主动删除数据,否则数据是恒久不见面晚点的。

web
storage和cookie的区别

Web
Storage的定义和cookie相似,区别是她是为重新老容量存储设计之。Cookie的大大小小是受限的,并且每次你请一个新的页面的时光Cookie都见面为发送过去,这样平空浪费了带动富,另外cookie还索要指定作用域,不得以跨域调用。

除开,Web
Storage拥有setItem,getItem,removeItem,clear等方式,不像cookie需要前端开发者自己封装setCookie,getCookie。但是Cookie也是匪得以或缺的:Cookie的企图是跟服务器进行交互,作为HTTP规范之一样有的如有
,而Web Storage仅仅是以以地头“存储”数据如果不行。

10、cookie和session的分别是什么?

   Cookie 保存在客户端本机;

   Session保存在劳动器端;

  联系:session的id存在cookie中。

11.页面导入样式时,使用link和@import有啊区别?

1).link属于XHTML标签,而@import是CSS提供的;

2).页面被加载的常,link会同事给加载,而@import引用的CSS会等交页面被加载了还加载;

3).import只出于IE5上述才会为识别,而link是XHTML标签,无兼容问题;

4).link 方式的样式的权重>@import的权重

12.简单易行描述下一定Position:

Relative:相对稳定。相对于本人本来位置一定,原DOM空间会保留;

Absolute:绝对定位。相对于第一独非static定位的祖先元素进行稳定,会删除原DOM空间;

Fixed:固定定位器窗口进行定位; 会删除DOM空间

Static: 默认值。没有一定,元素出现于健康的流中(忽略
top, bottom, left, right z-index 声明)。

Inherit:规定由父元素继承 position 属性的价。

13.display生出怎么样值?说明他们之作用。

  block         象块类元素一样显示。

  none          缺省值。象行内元素类型一样显示。

  inline-block    象行内元素一样显示,但那个情象块类型元素一样显示。

  list-item     象块类元素一样显示,并补充加样式列表标记。

  table         此元素会作为块级表格来展示

  inherit       规定当由父元素继承 display 属性的值

14、jquery中如何以数组转化为json字符串,然后重新转发回来?

$.parseJSON

$.fn.stringify = function() {

   return JSON.stringify(this);

}

使用:$(array).stringify();

15.JSON 的了解?

JSON(JavaScript Object Notation) 是同一种轻量级的数据交换格式。

其是基于JavaScript的一个子集。数据格式简单, 易于读写, 占用带富小

如:{“age”:”12″, “name”:”back”}

JSON字符串转换为JSON对象:

var obj =eval(‘(‘+ str +’)’);

var obj = str.parseJSON();

var obj = JSON.parse(str);

JSON对象转换为JSON字符串:

var last=obj.toJSONString();

var last=JSON.stringify(obj);

16、什么是响应式设计?响应式设计的基本原理是啊?

  
根据不同装备的屏幕尺寸、分辨率、方向等,统一网站亮也不同作用。

  
移动优先。可以采用JS跳反差手机站和PC站,可以行使MediaQuery检测不同装备的性质展示不同之CSS,可以用各种响应式前端框架。

  
优点:用户体验好,尤其是手机端。

  
缺点:包含大量冗余代码,开发成本较生(但是多低于开发手机站+PC站的模式)

17. visibility:hidden和display:none的区别?

用display:none隐藏以后,元素的半空中被放,其余元素得以占空间;

采取visibility:hidden仅仅是看不展现,但是元素的空中仍然占据,别的元素无法用。

18、 列举数组相关的常用方法

push/pop, shift/unshift, split/join,
slice/splice/concat, sort/reverse, map/reduce, forEach, filter

19、 列举字符串相关的常用方法

indexOf/lastIndexOf/charAt,
split/match/test, slice/substring/substr, toLowerCase/toUpperCase

20、广的浏览器内核有怎么样?

Trident内核:IE,MaxThon,TT,The World,360,搜狗浏览器等。[又称MSHTML]

Gecko内核:Netscape6及以上版本,FireFox(火狐),MozillaSuite/SeaMonkey等

Presto内核:Opera7及以上。      [Opera内核原为:Presto,现为:Blink;]

Webkit内核:Safari(苹果自带的浏览器),Chrome(谷歌)等。   [ Chrome的:Blink(WebKit的分支)]

21.title与h1的区别、b与strong的区别、i与em的区别?

   title属性没有明显意义就代表是单标题,H1则表示层次分明的题目,对页面信息之抓取也生深充分之熏陶;

  strong是表明要内容,有文章加强之义,使用阅读设备看网络时:<strong>会重读,而<b>是显得强调内容。

  i内容显示也斜体,em代表强调的文件;

22、网页验证码是干嘛的,是为着缓解什么安全问题。

  区分用户是计算机还是人数之集体活动程序。可以防止恶意破解密码、刷票、论坛灌水;

  有效防护黑客对有一个特定注册用户之所以特定程序暴力破解方式展开连发的登陆尝试。

23.针对前者工程师是位置你是何许理解的?

a.
前端是最好贴近用户之程序员,前端的力量就是是会于成品于 90瓜分进化到 100
分,甚至更好

b.
与型,快速高质量完成实现力量图,精确到1px;

c.
同团伙成员,UI设计,产品经理的联系;

d.
做好的页面结构,页面重构和用户体验;

e.
处理hack,兼容、写有优美之代码格式;

f.
针对服务器的优化、拥抱时前端技术。

24、什么是闭包(closure),为什么而就此它们?

闭包是靠有且访问另一个函数作用域中变量的函数,创建闭包的最为普遍的艺术就是是在一个函数内创造另一个函数,通过其他一个函数访问这函数的局部变量,利用闭包可以突破作用链域,将函数内部的变量和章程传递及表面。可以把闭包简单了解成“定义在一个函数内部的函数”

闭包的特色:

1.函屡屡内重新嵌套函数

2.里边函数可以引用外层的参数与变量

3.参数与变量不会见叫垃圾回收机制回收

//li节点的onclick事件还能够正确的弹出当前受点击的li索引

 <ul id=”test”>

    <li> index = 0</li>

    <li> index = 1</li>

    <li> index = 2</li>

    <li> index = 3</li>

</ul>

<script
type=”text/javascript”>

    var nodes =
document.getElementsByTagName(“li”);

    for(i = 0;i<nodes.length;i+=
1){

      nodes[i].onclick =
function(){

      console.log(i+1);        //不用闭包的话,值每次都是4

        }(i);

    }

</script>

25、Ajax是什么?如何创造一个Ajax?

ajax全名叫:Asynchronous javascript and XML,即异步的JavaScript和xml,也如页面无刷技术。这里的异步可以大概的知道也:向服务器发送请求的时光,我们不用等结果,而是可以又做另外的事务,等到有了结果它和谐会根据设定开展继续操作,与此同时,页面是匪见面产生整页刷新的,提高了用户体验。

怎创造一个Ajax?

(1)创建XMLHttpRequest对象,也就算是创办一个异步调用对象

(2)创建一个初的HTTP请求,并点名该HTTP请求的法、URL及证明信息

(3)设置响应HTTP请求状态变化的函数

(4)发送HTTP请求

(5)获取异步调用返回的多少

(6)使用JavaScript和DOM实现部分刷新

26.原生JS的window.onload与Jquery的$(document).ready(function(){})有啊两样?如何用原来生JS实现Jq的ready方法?

window.onload()方法是必等交页面内连图形的持有因素加载了后才能够实行。

$(document).ready()是DOM结构绘制了后便尽,不必等交加载了。

27.(设计题)想实现一个对准页面某个节点的拉?如何做?(使用原生JS)

应出概念即可,下面是几乎独中心

叫需要拖拽的节点绑定mousedown,
mousemove, mouseup事件

mousedown事件触发后,开始拖拽

mousemove时,需要通过event.clientX和clientY获取拖拽位置,并实时更新位置

mouseup时,拖拽了

28、 apply, call和bind有什么区别?

三者都足以将一个函数应用至其他对象上,注意勿是自对象.apply,call是直接实施函数调用,bind是绑定,执行要再调用.

apply和call的别是apply接受数组作为参数,而call是受逗号分隔的极致多个参数列表,

代码演示

    function Person() {

    }

    Person.prototype.sayName() {
alert(this.name); }

    var obj = {name: ‘michaelqin’}; //
注意这是一个习以为常对象,它不是Person的实例

    1) apply

    Person.prototype.sayName.apply(obj,
[param1, param2, param3]);

    2) call

    Person.prototype.sayName.call(obj,
param1, param2, param3);

    3) bind

    var sn =
Person.prototype.sayName.bind(obj);    

    sn([param1, param2, param3]); //
bind需要事先绑定,再实践

   sn(param1, param2, param3); //
bind需要先绑定,再实践

29、iframe有那些缺点?

*iframe会阻塞主页面的Onload事件;

*搜寻引擎的物色程序无法解读这种页面,不便宜SEO;

*iframe和主页面共享连接池,而浏览器对相同域的连天起限量,所以会潜移默化页面的相加载。

应用iframe之前用考虑当下半只缺陷。如果要采用iframe,最好是经javascript

动态为iframe添加src属性值AngularJS,这样好绕开以上两独问题。

30、如何解决ajax跨域问题?

jsonp、
iframe、window.name、window.postMessage、服务器上安装代理页面

好之做法:

jQuery中ajax的使用

$.ajax({

dataType:’jsonp’

})

 

 

 

 

 

 

相关文章