当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 百度前端笔试面试7个试题

Javascript
一个可以兼容IE FF的加为首页与加入收藏实现代码
javascript(jquery)利用函数修改全局变量的代码
JQuery 解析多维的Json数据格式
javascript 按回车键相应按钮提交事件
深入认识javascript中的eval函数
jquery tree 可编辑节点实现代码(jquery一句话节点菜单)
js window.onload 加载多个函数的方法
MAC官方菜单纯CSS实现灰色会换色
CSS Filter背景透明提示
CSS鼠标悬停菜单 图片交换技术实现
纯JS图片批量预加载技术代码
实用的层滑开js实现代码
jQuery get和post 方法传值注意事项
JQuery打造PHP的AJAX表单提交实例
Jquery AJAX 框架的使用方法
基于JQuery框架的AJAX实例代码
jquery ajax 检测用户注册时用户名是否存在
javascript 限制输入脚本大全
JavaScript window.setTimeout() 的详细用法
JavaScript 表格高亮类的应用[高级]

Javascript 中的 百度前端笔试面试7个试题


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-03   浏览: 374 ::
收藏到网摘: n/a

1、    JavaScript包括哪些数据类型?

我回答的是有两种:基本类型和对象,其中基本类型包括数字、字符串、布尔和null;对象(类似对象),包括数组、函数、内置对象、自定义对象。不过按理说字符串也有些对象的特点。

我这个回答是参考的JavaScript权威指南的,有些小问题,第一类中缺少了undefined。

搜索了下,网上还有几种回答:

第一种:共九种类型:1.未定义(undefined) 2.空(null) 3.布尔(boolean) 4.字符串(string) 5.数字(number)6.对象(object) 7.引用(reference) 8.列表(list) 9.完成(completion)。reference,list,completion这3种类型是做为JavaScript运行时中间结果的数据类型 在代码中不能使用。

最后我确实没见过。

第二种:javascript中包含6种数据类型:undefined、null、string、number、boolean和object。其中,前5种是原始数据类型,object是对象类型。object类型中包括Object、Function、String、Number、Boolean、Array、Regexp、Date、Globel、Math、Error,以及宿主环境提供的object类型。

除去reference,list,completion不同外,这几个回答其实大同小异。

2、<img>元素的alt和title有什么异同?

这个我前几天正好看到了一篇这样的文章。这两个属性是有些重复了。在不同浏览器里面表现有些不同。在alt和title同时设置的时候,alt作为图片的替代文字出现,title是图片的解释文字。

刚刚小小的实验了一把,在没有title的时候,alt会作为图片的解释,但是Firefox好像不这样做。完全测试的话要分图片存不存在、只有title、只有alt,2*2*2,8种情况,真复杂啊。

3、    border-color-left、marin-left、-moz-viewport改写成JavaScript格式

这个就是-后字符换大写,没什么问题。第三个-moz的真不敢确定。(未完待续)

ps:刚接到了百度面试的电话,等了好久,以为没希望了呢,小小高兴一下吧。不过我也没有多大的优势,不管是技术方面还是经验方面只有劣势没有优势,只是rp还行(窃喜一下)。笔试通过的有些侥幸,去百度的希望不大。

继续:刚才试验了一个-moz-border-radius确实是写成MozBorderRadius。

4、 编写一个JavaScript函数,实时显示当前时间,格式“年-月-日 时:分:秒”

主要是用到了各种时间函数,setInterval(funtionName,Time),firstChild.nodeValue。

setInterval函数名我好像写错了。我写的是最普通最简单的函数,每隔一秒钟重新获取时间。有很多值得优化的地方。程序写的不好看,就不献丑了。

5、 用css、html编写一个两列布局的网页,要求右侧宽度为200px,左侧自动扩展。

我主要的想法是右侧绝对定位,左框右边距200px,正好空出了右侧的位置。

我写的CSS如下:

#right{
  position:absolute;
   right:0;
   width:200px;
}
#left{
  marin-right:200px;
}

另一种方法(试验有效):

#right{
  float:right;
  width:200px;
}
#left{
  marin-right:200px;
}

HTML代码中#right必须写在#left前面

<body>
  <div id=”right”>…</div>
  <div id=”left”>…</div>
</body>

这好像是道经典面试题,在某次面试的时候,就被问过这个问题。还有一道经典的问题是如何使固定宽度的div在页面居中。

6、 使用JavaScript深度克隆一个对象?

JavaScript的对象赋值var anObj = anOtherObj 用的是传址方式,不能用于复制对象。

用对象原型写通用性更强些,但是当时对prototype没有十分的把握,只写了个克隆函数。刚刚查了下,果然有猫腻,下面是实现代码:

function Object.prototype.cloneObj()
{
   function NEWOBJECT(){};
   NEWOBJECT. prototype = this;
   var anObj = new NEWOBJECT();
   for ( var ele in anObj )
   {
      if ( typeof anObj[ele] == “object” ) return anObj[ele]. cloneObj();
   }
   return anObj;
}

7.Linux题目:批量删除当前目录下后缀名为.c的文件,如a.c、b.c

我的回答是rm *.c

幸亏我还有点点linux基础,当然更得归功于考前复习了几个常用linux命令。

附加题是Flash的AS题,大概是比较AS2.0和AS3.0在面向对象方面的异同吧。我都有好久好久没有接触过AS了,这题我没答。