中恒博瑞–前端笔试

匿名网友 匿名网友 发布于: 2016-11-21 00:00:00
阅读 328 收藏 0 点赞 0 评论 0

一、简答题

1.链表的优缺点

  • 优点
    (1).使用动态存储分配,不用事先估计大小
    (2).插入和删除不需要删除元素,效率高
    (3).不要求连续利用空间,空间利用率高
  • 缺点
    (1).不提供随机访问元素的机制
    (2).查找和搜索元素效率低

2.display:none和visibility:hidden有什么区别

两者都用于把网页上某个元素隐藏起来,但区别如下:
display:none 会使这个对象彻底消失,实际上当display的属性为none时,被设置该属性的元素没有被加载;
visibility:hidden 使对象不可见,但该对象在网页中所占的空间没有改变,在加载页面时一起加载进来。

3.行内元素有哪些?块级元素有哪些?空元素有哪些?

碰到过好多次
行内元素:<a><br><img><input><label><select><textarea>
块级元素:<p><div><form><ul><ol><dl><table><h1>~<h6>
空元素:<br><hr><meta><link><input><img>

4.列举浏览器对象模型BOM的常用至少三个对象,并列举window对象的至少三个方法

BOM的常用对象:window对象、location对象、screen对象、history对象、navigator对象、document对象
window对象的常用方法:close()方法,关闭浏览器窗口
alert()方法,警告框
confirm()方法,提示框
prompt()方法,输入框
open(),打开一个新的浏览器窗口或查找一个已经命名的窗口

5.列举文档对象模型dom里document对象的常用查找节点的方法并做简单说明

  • getElementById()方法:获取页面中id为指定内容的节点
  • getElementsByName()方法:返回带有指定名称的对象的集合(表单中使用)
  • getElementsByTagName()方法:获取标签名为指定内容的节点

6.JavaScript中apply与call的用法意义及区别

obj.call(thisObj,arg1,arg2,…);
obj.apply(thisObj,[arg1,arg2,…]);
两者作用一致,都是把obj(即this)绑定到thisObj,这时候thisObj就具备了obj的属性和方法。或者说thisObj“继承”了obj的属性和方法。
两者唯一的区别是apply接收的是数组参数,而call接收的是连续参数。
**通过call和apply可以实现对象继承,例:

1
2
3
4
5
6
7
8
var Parent = function() {
this.name = ‘Lee’;
this.age = 21;
}
var child = {};
console.log(child);//空对象 Object {}
Parent.call(child);
console.log(child);//Object {name: “yjc”, age: 22}

 

二、编程题

1.如何判断一个对象是否属于某个类

instanceof运算符是用来在运行时指出对象是否是特定类或者它的子类,返回值是布尔值。
举例:判断obj是什么类型

1
2
3
4
var obj = new String(“Lee”);
alert(obj instanceof String); //true
alert(obj instanceof Object); //true
alert(obj instanceof Number); //false

 

2.javascript中对象的深度克隆

不是太明白,等理解深入点了再填坑

3.如何消除一个数组里面的重复元素?函数名称为deRepeat,数组为var arr = [1,2,3,3,4,4,5,5,6,1,9,3,25,4]

1
2
3
4
5
6
7
8
9
10
11
Array.prototype.method = function(){
var arr1[]; //定义一个临时数组
for(var i = 0; i < this.length; i++){ //循环遍历当前数组
//判断当前数组下标为i的元素是否已经保存到临时数组
//如果已保存,则跳过,否则将此元素保存到临时数组中
if(arr1.indexOf(this[i]) == -1){
arr.push(this[i]);
}
}
return arr;
}
1
2
3
4
5
6
7
8
9
function unique(arr) {
var temp[];
for(var i in arr) {
if(temp.indexOf(arr[i]) == -1) {
temp.push(arr[i]);
}
}
return temp;
}

 

这两种方法原理相同,都是遍历数组中的元素。利用indexOf()方法。

评论列表
文章目录