当前位置:文档之家› javascript基本面试题

javascript基本面试题

javascript基本面试题
javascript基本面试题

一、单选题

1、以下哪条语句会产生运行错误:(a )

A.var obj = ();//语法错误

B.var obj = [];//创建数组

C.var obj = {};//创建对象

D.var obj = //;

原因:var obj = new Array ();是对的;JavaScript 中大括号表示创建对象。var obj = { id:1, name:"jacky" };alert(https://www.doczj.com/doc/d24088510.html,);上例表示创建一个具有属性 id (值为 1)、属性 name (值为 jacky )的对象。属性名称可以用引号引起来成 "id"、"name",也可以不引。

当然除了属性,也可以创建方法。

试验代码

/* window.onload=function()

{ // var obj = ();

var obj1 = [];//object

var obj2 = {};//object

var obj3 = //;//undefine

alert(typeof(obj1));

alert(typeof(obj2));

alert(typeof(obj3));

}*/

function showName()

{ alert(https://www.doczj.com/doc/d24088510.html,); }

var obj = { id:1, name:"jacky", showName:showName };

obj.showName();

2、以下哪个单词不属于javascript 保留字:(b )

A.with

B.parent

C.class

D.void

以下的保留字不可以用作变量,函数名,对象名等,其中有的保留字是为以后JAV ASCRIPT 扩展用的.

abstract boolean break byte case catch char class const continue default do double else

extends false final finally float for function goto if implements import in instanceof int interface long native new null package private protected public return short static super switch synchronized this throw throws transient true try var void while with

3、请选择结果为真的表达式:(c)

A.null instanceof Object(if(!(null instanceof Object))是真的)

B.null === undefined

C.null == undefined

D.NaN == NaN

(1) null确实可以理解为原始类型,不能当Object理解!

null,int,float.....等这些用关键字表示的类型,都不属于Object.

至于可以把null作为参数,只是特殊规定而已.

可以这么理解: 对象的引用代表的是一个内存的值,null是一个空引用,可以理解为内存的值为0;按这个意思对代码

(2) function f1(){ }

1. alert(f1 instanceof Function);//true

2. alert(f1 instanceof Object);//true

3. alert(Function instanceof Object);//true

4. alert(Object instanceof Function);//true

Function 是Object的实例,Object又是Function的实例

Function是函数的构造函数,而Object也是函数,Function自身也是函数Object.prototype是一切原型链的顶点,instanceof会查找整个原型链

alert(Function);

alert(Function.prototype);

alert(Function.__proto__);

alert(Object);

alert(Object.prototype);

alert(Object.__proto__);

alert((function(){}).prototype);

alert((function(){}).__proto__);

alert((function(){}).__proto__.prototype);

alert((function(){}).prototype.__proto__);

alert(Array.__proto__);

alert((123).__proto__);

alert((Number).__proto__);

alert(("test").__proto__);

alert((String).__proto__);

alert((true).__proto__);

alert((Boolean).__proto__);

/* window.onload=function()

{

if(NaN == NaN)

{

alert("ddd");

}

}

*/

二、不定项选择题

4、请选择对javascript理解有误的:(abcd)

A.JScript是javascript的简称

B.javascript是网景公司开发的一种Java脚本语言,其目的是为了简化Java 的开发难度

C.FireFox和IE存在大量兼容性问题的主要原因在于他们对javascript的支持不同上

D.AJAX技术一定要使用javascript技术

5、foo对象有att属性,那么获取att属性的值,以下哪些做法是可以的:(ACE)

A.foo.att

B.foo(“att”)

C.foo[“att”]

D.foo{“att”}

E.foo[“a”+”t”+”t”]

6、在不指定特殊属性的情况下,哪几种HTML标签可以手动输入文本:(a ce)

A.

B.

C.

D.

7、以下哪些是javascript的全局函数:(abc)

A.escape

B.parseFloat

C.eval

D.setTimeout

E.alert

8、关于IFrame表述正确的有:(abcd)

A.通过IFrame,网页可以嵌入其他网页内容,并可以动态更改

B.在相同域名下,内嵌的IFrame可以获取外层网页的对象

C.在相同域名下,外层网页脚本可以获取IFrame网页内的对象

D.可以通过脚本调整IFrame的大小

9、关于表格表述正确的有:(abcde)

A.表格中可以包含TBODY元素

B.表格中可以包含CAPTION元素

C.表格中可以包含多个TBODY元素

D.表格中可以包含COLGROUP元素

E.表格中可以包含COL元素

10、关于IE的window对象表述正确的有:(acd)

A.window.opener属性本身就是指向window对象

B.window.reload()方法可以用来刷新当前页面

C.window.location=”a.html”和window.location.href=”a.html”的作用都是把当前页面替换成a.html页面

D.定义了全局变量g;可以用window.g的方式来存取该变量

三、问答题:

1、谈谈javascript数组排序方法sort()的使用,重点介绍sort()参数的使用及其内部机制

sort的实现的功能类似JAVA的比较器,数据排序从多维数组的第一维开始排序可以自己定义排序方法,很不多的函数

2、简述DIV元素和SPAN元素的区别。

DIV有回车,SPAN没有

3、结合text这段结构,谈谈innerHTML outerHTML innerText之间的区别。innerHTML对象里面的HTML,outerHTML包括对象和里面的

innerText对象里面的文本

4、说几条XHTML规范的内容(至少3条)

属性加引号,不能有不匹配的标签,加定义

5、对Web标准化(或网站重构)知道哪些相关的知识,简述几条你知道的Web 标准?

网页主要由三部分组成:结构(Structure)、表现(Presentation)和行为(Behavior)。对应的网站标准也分三方面:结构化标准语言,主要包括XHTML 和XML;表现标准语言主要包括CSS;行为标准主要包括对象模型(如W3C DOM)、ECMAScript等。

四、程序题:

1、完成foo()函数的内容,要求能够弹出对话框提示当前选中的是第几个单选框。

2、填充注释部分的函数体,使得foo()函数调用弹出”成功”的对话框。代码应尽量简短。

function reverse(str) {

// 在此处加入代码,完成字符串翻转功能

return str.split(",").reverse().join(",");

}

1.求y和z 的值是多少?

分析:function add没有返回值,y和z都会是undefined,而且,将add函数改好:

function add(n){return n=n+1;}和function add(n){return n=n+3;}

y和z都会是4,因为后面定义的add会覆盖前面定义的add。

2:javascript是面向对象的,怎么体现javascript的继承关系?

3:javascript怎样选中一个checkbox,怎样设置它无效?

4:在css中:以下语句各代表什么意思?

td{width100%} //表HTML元素 .td{width100%}//类元素

#td{width100%}//ID ##td{width100%}

1、form中的input有哪些类型?各是做什么处理使用的?

text radio checkbox file button image submit reset hidden

submit是button的一个特例,也是button的一种,它把提交这个动作自动集成了。如果表单在点击提交按钮后需要用JS进行处理(包括输入验证)后再提交的话,通常都必须把submit改成button,即取消其自动提交的行为,否则,将会造成提交两次的效果,对于动态网页来说,也就是对数据库操作两次。

button具有name、value属性,能触发onclick事件

submit继承了button submit增加了触发表单onsubmit事件的功能、增加了执行表单的submit()方法的功能

INPUT type=submit按回车提交表单

button提交的是innerTEXT

2、table标签中border,cellpadding td标签中colspan,rowspan分别起什么作用?

border边界 cellpadding边距

cellpadding,是补白,是指单元格内文字与边框的距离

cellspacing,两个单元格之间的距离

colspan跨列数

rowspan跨行数

3、form中的input可以设置readonly和disable,请问这两项属性有什么区别?

readonly不可编辑,但可以选择和复制

disable不能编辑复制选择

4、JS中的三种弹出式消息提醒(警告窗口、确认窗口、信息输入窗口)的命令是什么?

alert confirmprompt

5.题目:当点击按钮时,如何实现两个td的值互换?

用javascript实现此功能。

分析:这个题主要是考变量传值。其次是考如何取元素的值。

第一种代码如下:

1

2

3

4

5无标题文档

6

30

31

32

33

34

35

36

37

38

第二种代码如下:

1

2

3

4

5无标题文档

6

30

31

32

33

34

35

36

37

38

39

40

41

42

321445
123133

43

44

45

6. "闭包"问题

Untitled Page

div1

  • a
  • a
  • a
  • a
  • a

使用注释行的时候,总是提示5.

在一般编程语言中, 参数都是"传值", 假设一个C函数的原型是int Fun(int value);

当你调用这个函数时, Fun函数首先会在自己的函数栈上copy一份参数, 就是这个函数的副本, 当你在Fun外部修改value值, 并不会影响Fun内部的value. 而Javascript的内嵌函数很特殊, 它并不会copy一个参数副本, 所有函数公用一套参数, 所以你在函数外部修改了参数值, 函数内部也会受影响.

这就是为什么你的show函数, 它的z参数是最后一个值, 因为每一次循环, z 都被更改了. 传值和传址的问题

1.判断字符串是否是这样组成的,第一个必须是字母,后面可以是字母、数字、下划线,总长度为5-20

2.截取字符串abcdefg的efg

3.让一个input的背景颜色变成红色

4。给一个页面,写html css

5。div的高宽等于浏览器可见区域的高宽,浏览器滚动,div始终覆盖浏览器的整个可见区域

6。判断一个字符串中出现次数最多的字符,统计这个次数

7。IE与FF脚本兼容性问题

又重新问的是1,4,6,7,这次问出题者的意图,并且让给出7的更多答案,

以及IE FF不兼容的原因

然后看了看简历,没有问简历上的项目,而是让自己随便谈谈

1对于web客户端技术未来趋势发展谈谈看法

javascript + ajax=RIA

Adobe Flash AS 3

Flex

Sliveright

2web开发团队人员应该如何分工协作

布局 CSS 脚本

比如脚本人员长期的积累可能铸造类型YUI这样的产品级脚本库(亮点)

3web开发曾经的团队有没有别人遇到问题,什么问题,向你请教

4如果要实习,什么时候可以

5自己在开发的过程中遇到什么问题,谈谈看法

6web开发脚本开发环境用什么、调试用什么

试过aptana,现在就用editplus

调试肯定用firebug,ie下看页面DOM用IEInspector

7如果有个新技术,现在需要掌握,你会怎么做

新技术的发现我一般是通过RSS工具,比如我用GoogleReader

每天有半个小时左右在看最新的资讯、技术走向

发现新技术,首先有个大概了解,如果有深入的必要

我一般会看他的官网,比如jquery,我会搜索到https://www.doczj.com/doc/d24088510.html,,然后看Docs、samples

如果要用到项目中,有困难的问题,我会svn得到最新的这个技术的源码,深入跟踪进去,看实现原理

一般现在涌现的技术都是opensource

提问时间

1百度web开发脚本是否有做类似YUI库的打算

2百度web开发工程师打算招多少人

百度电话二面回忆 web开发部–web开发工程师

首先是自我介绍

然后谈谈做的web项目

然后开始问技术问题

前端开发的优化问题

答:

产品发布时,js的压缩,即函数名替换、整个文件压缩成一行

css开发的时候注释写清楚,先有个base.css,然后根据不同页面需要再加css,发布的时候将css中的一个定义写成一行,目的是压缩文件大小

最终发布的时候甚至可以将css,js分别压缩成一个文件,甚至css、js通过技巧压缩到一个里边(亮点)

这样的目的是,减少用户访问web产品的http连接数

web前端产品的开发流程

答:首先根据产品的定位、用户群,确定配色,然后纸上设计整体布局,然后png 或者psd出效果图,切出需要的小图片,然后手写代码div+css构造出页面,然后根据功能写脚本

参考126邮箱首页,将所有小图片放到一个图片中,通过css的

background-position实现页面,还是为了优化,减少http连接数

规避javascript多人开发函数重名问题

答:首先是通过命名规范,比如根据不同的开发人员实现的功能,在函数名加前缀,虽然函数名看起来复杂,发布的时候还是可以替换,从而优化。

还有一种办法是,每个开发人员都把自己的函数封装到类中,然后调用的时候即使函数名相同,但是因为是要类.函数名来调用,所以也减少了重复的可能性。

javascript面向对象中继承实现

答:我是用prototype.js extend.js扩展

然后子类中parent.initialize()…

答的不好

正确答案:

// 1. 构造器

function Animal() {};

function Mammal() {};

function Canine() {};

function Dog() {};

// 2. 原型链表

Mammal.prototype = new Animal();

Canine.prototype = new Mammal();

Dog.prototype = new Canine();

prototype.js实现的基本原理

答:

将功能封装

比如Ajax.Request,还是有判断浏览器的代码;Position这样的实现页面元素位置的计算

prototye太大,如果一个页面功能不需要这样的,自己实现,怎么做

答:首先页面、css、脚本分离之后,脚本中将整个模块功能写成一个类var Do={} 其中初始化函数init:function(){},然后最后做Do.init()

其中init会对页面上form中需要交互的元素绑定事件,比如

$(’input1′).onclick=function(){}

IE、FF下面脚本的区别

答:

1.IE有outerHTML,FF没有

2.页面元素id,IE可以直接取,FF必须document.getElementById()

3.Ajax里边FF是new XMLHttpRequest,而IE是

try new ActiveXObject(’Msxml2.XMLHTTP’) try new

ActiveXObject(’Microsoft.XMLHTTP’)

FF下面实现outerHTML

答:.parenet.firstChild .parent.innerHTML

这个没答好

正确答案:原理是,get:取到这个标签的tagname,然后属性循环构造成这个标签的属性

set:把字符串用insertBefore插入到这个元素前面,然后removeChild这个元素

< SCRIPT LANGUAGE=”JavaScript”>

< !–

if(typeof(HTMLElement)!=”undefined” && !window.opera)

{

HTMLElement.prototype.__defineGetter__(”outerHTML”,function()

{

var a=this.attributes, str=”<”+this.tagName, i=0;

for(;i

if(a[i].specified)

str+=” “+a[i].name+’=”‘+a[i].value+’”‘;

if(!this.canHaveChildren)

return str+” />”;

return str+”>”+this.innerHTML+””;

});

HTMLElement.prototype.__defineSetter__(”outerHTML”,function(s)

{

var d = document.createElement(”DIV”); d.innerHTML = s;

for(var i=0; i

this.parentNode.insertBefore(d.childNodes[i], this);

this.parentNode.removeChild(this);

});

HTMLElement.prototype.__defineGetter__(”canHaveChildren”,function() {

return !/^(area|base|basefont|col|frame|hr|img|br|input|isindex|link| meta|param)$/.test(this.tagName.toLowerCase());

});

}

//–>

< /SCRIPT>

IE、FF下面CSS的解释区别

答:

1.png透明背景,FF下面没有问题,IE需要用滤镜通道

2.z-index在IE、FF下面的解释问题,

IE会认为第一个z-index=0

3.长字符串,word-wrap:break-all可以解决IE,但是FF需要overflow:hidden 才行

冯舒娅补充:

1、有些标签在ff中不能用,比如button

2、滤镜

3、鼠标cursor:hand cursor:pointer

4、div的高度自适应

5、对box模型解析不一样

6、ul、ol的padding和margin

IE都能识别*,标准浏览器(如FF)不能识别*;

IE6能识别*,但不能识别 !important;

IE7能识别*,也能识别 !important;

FF不能识别*,但能识别 !important;

例如style=”*width:10px;!important width:20px;”

这样在IE6下宽度为10px,在IE7下宽度时20px

web前端技术的展望

答:javascript ajax;flash AS;Flex;Sliveright

1编写一个方法求一个字符串的字节长度

水仙花数

2 阶乘 b) c) d) 3、关于html中的事件,说法正确的是()。(选择二项) a)当输入焦点转移到input输入框时,将触发对象的onFocus事件 b)当输入焦点转移到input输入框时,将触发对象的onBlur事件 c)当输入焦点移出input输入框时,将触发对象的onFocus事件 d)当输入焦点移出input输入框时,将触发对象的onBlur事件 4、向html文档中插入javascript脚本时,正确的标记是()。(选择一项) a) b)…… c) d)…… 5、网页编程中,运行下面的javascript代码,则提示框中显示()。(选择一项) a)2 b) 2.5 c) 32/2 d) 16 6、如果要在网页上显示"20060816",空格处应填写的javascript代码是()。(选择一项) var year = 2006; var month = 8; var date = 16; document.write(____);//此处填写代码 a)year+month+date b)year+0+month+date c)year+"0"+month+date d)year+""+month+""+date 7、分析下面的javascript代码:x=11;y="number";m=x+y;m的值为()。(选择一项) a)11number

JavaScript模拟试题

JavaScript模拟试题 一、单项选择题(本题共15小题,每小题2分,共30分) 在每小题列出的四个备选项中只有一个是符合 题目要求的,请将其正确答案涂写在答题卡上。 1. 以“.js”为文件扩展名的文件是__D____。 (A) 文件 (B) 网页文件 (C) Java文件 (D) Javascript文件 2. 以下合法的变量名是__D_B___。 (必须是_或字母开头后可跟下划线或数字) (A) new (B) _123 (C) null (D) 2abc 3. 以下正确的字符串是___D___。 (A) xyz (B) ?xyz” (C) “xyz? (D) ?xyz? 4. 设有语句: var st1=?test?; st1=st1+ 25; 则st1的值是__D_ A__。 (A) ?test25? (B) 25 (C) ?test? (D) 语法错误 5. 123+”789”的值是__B__A__。 (A) ?123789? (B) 912 (C) “789” (D) 语法错误 6.表达式(a=2,b=5,a>b?a:b)的值是__B____。 (A) 2 (B) 5 (C) 1 (D) 0

7. 设有语句var a=3,b=5,c=3,d=8,m=3,n=2; 则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为__C_____。 (A) 0 (B) 1 (C) 2 (D) 3 8.设var a=2,b=3; 则a++==b?a:b的结果是____D_______。 A) 0 B) 1 C) 2 D) 3 9. 下面while循环执行的次数为___D_____。 var i=5; while (i==0) i--; A)无限 B) 1 C) 5 D) 0 10. 以下数组的定 义中____C________是错误的。 A) var a=new Array(); B) var a=new Array(10); C) var a[10]={ 1,2,3}; D) var a=[\11. 设var x=3,y=4; 下列表达式中y的值为9的是 ___A__D___。 A)y*=x-3 B) y/=x*9 C) y-=x+10 D)y+=x+2 12. 下拉菜单的设置中有多个b; a++) b=a; (A) 0 (B) 1 (C) 2 (D) 死循环 18. 下面函数的返回值是__A____。 function subc() {var i, j=9; while( i=j-1) { j-=3;

Javascript综合复习题大全及答案

Javascript综合复习题【共116题】 每份考卷中javascript只占一半。题型和分数如下: 1.单选题:10题*1分 = 10分 2.填空题:5题*1分 = 5分 3.程序阅读题:2题*4分 = 8分 4.程序实现题:2题*5分 = 10分 5.简答题:3题*5分 = 15分 合计:48分,共22题。 剩余52分,23题是另一门课程。 【提示:本综合复习题的目的是让同学们多见识各种题目。选择题、填空题以及程序阅读题可以仔细做,对于程序实现和简答题建议先理解再记忆,切记死背答案。】 第一部分:单选题 1.Javascript中, 以下哪条语句一定会产生运行错误?答案( B ) A、var _变量=NaN; B、var 0bj = []; C、var obj = string B. length C.非法字符 2.下面哪个描述不正确( B ) A. NaN!=null ==NaN C.{}!=false !=false 3.var arr = new Array(new Array(9,0,3,4,5) , ['a' , 'b' , 'c'] , new Array(2,9,0,6));则arr[1][3]=( D ) B.6 4.有如下代码: var arr = new Array(9);arr[0]=1; arr[2]=2; 该数组的length属性值为( D ) A、2 B、10 C、8 D、9 5.有一个submit按钮,在这个按钮控件上添加哪个事件不起作用?( D ) D. onsubmit 6.有一个变量var a=typeof string + 100+50 + NaN,以下哪个是alert(a)的结果?( C ) B. function10050NaN C. undefined10050NaN D. NaN ) A 以下代码,哪个结果是正确的?(7.var str='123abc'; str += ('abc' , ''); alert(str); 123abc B. D. abc 8.以下哪个结果是正确的?( C ) var a=100 ,b=\, c=\; alert(a , b ,c));

javascript试题

在HTML中,表单中的input元素的()属性用于指定表单元素的名称。 A. value B. name C. type D. caption 当表单各项填写完毕,鼠标单击提交按钮时可以触发()事件。 A. onenter B. onsubmit C. onmouseDrag D. onmouseOver 分析下面的JavaScript代码段,输出结果是()。 var a=15.59; document.write(Math.round(a)); A. 15 B. 16 C. 15.5 D. 15.4 要求用JavaScript实现下面的功能:在一个文本框中内容发生改变后,单击页面的其他部分将弹出一个消息框显示文本框中的内容。下面语句正确的是()。 A. B. C. D. 假定今天是2006年4月1日星期六,请问下列JavaScript代码在页面上的输出结果是()。var time=new Date(); document.write(time.getDate()); A. 2006 B. 4 C. 1 D. 6 下面描述正确的是()。 A. switch语句用于重复执行一个语句块的操作 B. switch语句根据表达式的值执行若干语句块之一,如果没有匹配项,则执行默认语句块中的语句 C. switch语句表达式中的值不能与后面case语句中的常量相匹配时将出现运行错误 D. switch语句又叫循环语句 分析如下JavaScript代码,b的值为()。 var a=1.5 ,b; b=parseInt(a); A. 2 B. 0.5 C. 1 D. 1.5 在HTML中,使用JavaScript中的浏览器对象实现在当前窗口打开链接"https://www.doczj.com/doc/d24088510.html,"的javascript语句是()。 A. window.open("https://www.doczj.com/doc/d24088510.html,"); B. document.write("https://www.doczj.com/doc/d24088510.html,"); C. location.replace("https://www.doczj.com/doc/d24088510.html,"); D. location.reload("https://www.doczj.com/doc/d24088510.html,"); 如果今天是2006年5月14日,分析下列JavaScript代码运行后,在网页上显示()。 var now = new Date(); var year = now.getYear(); var month = now.getMonth(); var date = now.getDate(); document.write(year+" "+month+" "+date); A. 2006 05 14 B. 2006 5 14 C. 2006 04 14 D. 2006 4 14 在HTML中有如下代码,运行后页面显示结果为()。

相关主题
文本预览
相关文档 最新文档