一、简答题
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.如何判断一个对象是否属于某个类
instanceof运算符是用来在运行时指出对象是否是特定类或者它的子类,返回值是布尔值。
举例:判断obj是什么类型
2.javascript中对象的深度克隆
不是太明白,等理解深入点了再填坑
3.如何消除一个数组里面的重复元素?函数名称为deRepeat,数组为var arr = [1,2,3,3,4,4,5,5,6,1,9,3,25,4]
这两种方法原理相同,都是遍历数组中的元素。利用indexOf()方法。



