前端试题

转载 2017年01月03日 11:24:08


  • 你使用过那些Javascript库?

  jQuery ExtJS

  • 你是否研究过你所使用的JS库或者框架的源代码?

  正在研究中、、、、、再说

  • 什么是哈希表?

  类比数组,数组是编程上的哈希表,哈希表是一种数据结构,关键点就是用一个key值来取对应数据,就像数组的下标。

  • 'undefined'变量和'undeclared'变量分别指什么?

  'undefined'是未定义,在jQuery源码中第一行就是,在变量没有赋值的时候的值即为undefined。underclared即为被污染的命名,当使用变量时,没有用var关键字,这时候,定义的变量会在window命名空间被访问到。

  • 闭包是什么,如何使用它,为什么要使用它?

      函数数再定义一个函数,用于返回里面的值,

    • 你喜欢的使用闭包的模式是什么?
    • 两种模式用在不同场合。参见jQuery源码,立即调用模式,把$的jQuery源码放在了全局作用域下。返回函数类型的,制作一个随时可以使用的函数。

      闭包与设计模式

    • 单例模式,例如要做一个荫罩层,这个时候我们需要一个全局变量来判断页面是否已经存在这样一个东西,如果就用一个var a 定义,那么就会污染全局命名空间。最好的作法,就是把这样一个变旦放在一个函数里面,然后通过函数内的函数去判断调用写它的逻辑。
  • 请举出一个匿名函数的典型用例?

  • $.("input").each(function(e){this.val('OK')});
  • 请解释什么是Javascript的模块模式,并举出实用实例。

    我们在做radf库的时候,把所有的函数写在var function =  radf(){}里,为的是在全局作用域下,只有一个radf对象,所有的属性和方法全在radf命名空间下面。这样就是一个无污染的环境。

    • 如果有提到无污染的命名空间,可以考虑加分。
    • 如果你的模块没有自己的命名空间会怎么样?
    • 与其它库或内容造成冲突。
  • 你如何组织自己的代码?是使用模块模式,还是使用经典继承的方法?

在模块模式中使用继承。例如我们的库中有pannel布局型组件和data型组件,其余都依照这两个基本组件继承而来。

  • 请指出Javascript宿主对象和内置对象的区别?

浏览器环境就是一个宿主,例如ie和ff就是两个不同的宿主环境,里面有一些方法和解释编译的差异性。document、body就是这样的对象。

内置对象就是w3c那个啥组织规定的一些对象,不管任何浏览器都应该有的,例如Array、Object等,当然ie6这种水货很有可能没有。!!!

  • 指出下列代码的区别:

    function Person(){} var person = Person() var person = new Person()
    
    1、定义一个函数为Person()  2、定义一个匿名函数指向person  3、实例化一个person、原型来自于函数Person
  • '.call'和'.apply'的区别是什么?

参数不同。call是给每个argument,.apply是給一个参数组数。

  • 请解释'Funciton.prototype.bind'的作用?

不晓得阿,。1!!

  • 你如何优化自己的代码?

这个就多了,变量能放一起放一起,尽量提前break,能用html的不用css,能用js的不用css、jQuery对象的查找,尽量用#少用.。。一下想不起来了。

  • 你能解释一下JavaScript中的继承是如何工作的吗?

创建了一个实例。这个实例是一个具有__proto__属性的空对象,并且__proto__指向F.prototype

初始化实例。将arguments 和 this赋予函数F。

返回这个实例。

  • 在什么时候你会使用'document.write()'?

    不用。。。。。。习惯用alert调试,有自己封装好的MsgBox.

    • 大多数生成的广告代码依旧使用'document.write()',虽然这种用法会让人很不爽。
  • 请指出浏览器特性检测,特性推断和浏览器UA字符串嗅探的区别?

。。。奇怪

  • 请尽可能详尽的解释AJAX的工作原理。

非ajax是把要提交的内容放在submit里面,浏览器刷新提交数据。ajax即异步数据刷新,将要提交的数据与服务器接口交换数据,将得到的数据返回用于重组dom元素,以及改变一些页面效果。

  • 请解释JSONP的工作原理,以及它为什么不是真正的AJAX。

动态添加script标签,script是不存在跨域问题的,所以可以跨域以get方式访问异域的数据。要跨域以post方式,需要使用iframe标签。ajax是使用XMLHttpRequest来和服务器进行异步通信,所以原理完全不同。

  • 你使用过JavaScript的模板系统吗?

    没有- - 。

    • 如有使用做,请谈谈你都使用过那些类似库文件。比如Mustache.js,Handlebars等等。
    • 好吧,我知道是什么东西了,大量的正则表达式用于替换掉html中代表数据的内容。生成静态的html页面。用于blog或论坛等地方。
  • 请解释变量声明提升。

在中间声明的函数,会提升到最先去声明,但是赋值位置不会提升。

  • 请描述下事件冒泡机制。

点击document中的div ,也会触发到document的click事件,这就是冒泡啦,!如果要停止冒泡,ie下e.returnValue = false。ff下,stop啥的。

  • "attribute"和"property"的区别是什么?

 

  • 为什么扩展JavaScript内置对象是个坏做法?

  • 每一个对象都有这个方法,有时候是多余的。
  • 为什么扩展JavaScript内置对象是个好做法?

  • 方便使用,不用记新的命名空间,直接在对象后面点就行了。
  • 请指出document load和document ready的区别。(这是个问题的问题)

  • 这是什么问题的问题呢???ready是在dom加载之后,图片加载之前,load是所有东西准备就绪之后。
  • '=='和'==='有什么不同?

  • 三个等的话,是要求类型也相同,1==true是ok的,但是1===true是false;
  • 你如何获取浏览器URL中查询字符串中的参数。

  • location.href就是地址。再用正则或substring提取。
  • 请解释一下JavaScript的同源策略。

  • 域名,协议,端口相同才能被执行。防止其它网页对不同域不同协议不同端口网页的修改。
  • 请解释一下事件代理。

  • 事件代理,比较我要点一个table中的td时编辑,那么我们会在td上绑定事件呢还是table上,如果在td上绑定,会产生非常多的事件,对内存来说是个不小的考验,所以我们选择在table中绑定。因为js中有些事件是冒泡的,比如onclick。
  • 请描述一下JavaScript的继承模式。

  • 我只用一种哈。就是把子类的prototype继承父类。   例 : children.prototype = new perent();
            • 如何实现下列代码:

              [1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
              Array.prototype.duplicator = function(){
                var l = this.length,i;
                for(i=0;i<l;i++){
                 this.push(this[i]) 
              }
              }
  • 描述一种JavaScript memoization(避免重复运算)的策略。

  • 开定时器
  • 什么是三元条件语句?

  • 嘿嘿我最喜欢用了。       a>b?a:b
  • 函数的参数元是什么?

  • 什么玩儿?
  • 什么是"use strict"?使用它的好处和坏处分别是什么?

严格模式会导致出现错误就终止了。 开发时候使用一下可以防bug.

前端面试题整理汇总100题

1.一些开放性题目 1.自我介绍:除了基本个人信息以外,面试官更想听的是你与众不同的地方和你的优势。 2.项目介绍 3.如何看待前端开发? 4.平时是如何学习前端开发的? 5.未来三到五年的规...
  • garvisjack
  • garvisjack
  • 2018年02月04日 10:38
  • 100

前端试题

自己写的,有什么错误,请多多指教。 1.     什么是行内元素,什么是块级元素?你所知道的行内元素有哪些,块级元素又有哪些?CSS的盒模型是什么(可用文字或图像来描述)? 块元素:, 行内...
  • u013240543
  • u013240543
  • 2015年03月25日 20:41
  • 537

【前端试题】

描述:请用JavaScript实现,控制一个文本框只能输入正整数,如输入不符合条件则文本框全部字体标红。要求写出完整的文本框HTML代码和JavaScript逻辑代码。 Black...
  • stone_flower_rain
  • stone_flower_rain
  • 2015年08月26日 15:13
  • 282

自己总结的web前端面试题之php

这是总结一般公司里会问到的html+css相关内容面试题,大家可以一起学习一下,如果有什么不对的,或者您遇到过的面试题,请留言,我来陆续添加...
  • baisixue19870221
  • baisixue19870221
  • 2017年10月23日 16:17
  • 203

百度web前端面试题-2015年

http://www.itmian4.com/forum.php?mod=viewthread&tid=6239&extra=page%3D2%26filter%3Dtypeid%26typeid%3...
  • sinat_16073327
  • sinat_16073327
  • 2015年03月18日 15:25
  • 1322

美团前端面试题及答案

1.如何去除浮动? 方法一:使用一个空的div 方法二:overflow:hidden 方法三: display:inline-block; 方法四: position:absolute; ...
  • sml009z9
  • sml009z9
  • 2015年09月01日 00:45
  • 3919

2017.02.20 第一次前端面试

第一次前端面试
  • duola8789
  • duola8789
  • 2017年02月10日 22:52
  • 1216

2018秋招前端面经总结

在微信公众号上看到的文章,原文如下:总结了一下,发现实习经历真的很重要,而且项目经验也要重点突出一些东西,展现自己的技术特点,让面试官无懈可击。不然问一些东西说不出来就很尴尬了。 一、阿里一面(...
  • qq_39387475
  • qq_39387475
  • 2017年10月18日 17:35
  • 378

前端知识点试题记录

1.要运用css3动画,你需要运用什么规则? 答:要运用css3动画,需要运用@keyframes规则和animation属性 2.下面有关javascript内部对象的描述,正确的有? His...
  • qx1995318
  • qx1995318
  • 2016年06月26日 23:20
  • 149

前端小试题

innerText IE支持,FIREFOX不支持。 setAttribute('class','styleClass') FIREFOX支持,IE不支持 js传入不定个数的参数 ...
  • u013240543
  • u013240543
  • 2015年04月07日 21:01
  • 407
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:前端试题
举报原因:
原因补充:

(最多只允许输入30个字)